【问题标题】:Why does json pointer use tilde as the escape character?为什么 json 指针使用波浪号作为转义字符?
【发布时间】:2018-06-14 11:25:50
【问题描述】:

JSONPointer 表示法 (rfc6901) 允许您将 JSON 文档中的位置表示为字符串。

我惊讶地发现规范使用波浪号“~”作为转义字符? 为什么选择这个而不是像反斜杠''这样更传统的东西?

【问题讨论】:

    标签: jsonpointer


    【解决方案1】:

    不能使用反斜杠的原因是反斜杠在 JSON 中已经具有含义,并且希望能够在 JSON 文档中包含 JSONPointer 而无需双重转义。

    如果您仔细阅读规范,您会注意到:

    1. JSON 字符串表示

      JSON 指针可以用 JSON 字符串值表示。每
      [RFC4627],第 2.5 节,引号 '"' (%x22) 的所有实例,
      反斜线 '\' (%x5C) 和控制 (%x00-1F) 字符必须是
      逃跑了。

      请注意,在将 JSON 字符串作为 JSON 指针处理之前,
      反斜杠转义序列必须是非转义的。

    另一个原因是允许 URI 编码。

    根据this discussion,它几乎是插入符号'^'。 另请注意,URL 中允许使用波浪号“~”,而不允许使用插入符号“^”。 不过,请参阅 http://jkorpela.fi/tilde.html 以了解与 URL 中的波浪线相对应的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-06
      • 2014-05-20
      • 2011-04-26
      • 2012-07-12
      • 1970-01-01
      • 2013-01-26
      • 2017-07-15
      • 2010-11-22
      相关资源
      最近更新 更多