【发布时间】:2018-06-14 11:25:50
【问题描述】:
JSONPointer 表示法 (rfc6901) 允许您将 JSON 文档中的位置表示为字符串。
我惊讶地发现规范使用波浪号“~”作为转义字符? 为什么选择这个而不是像反斜杠''这样更传统的东西?
【问题讨论】:
标签: jsonpointer
JSONPointer 表示法 (rfc6901) 允许您将 JSON 文档中的位置表示为字符串。
我惊讶地发现规范使用波浪号“~”作为转义字符? 为什么选择这个而不是像反斜杠''这样更传统的东西?
【问题讨论】:
标签: jsonpointer
不能使用反斜杠的原因是反斜杠在 JSON 中已经具有含义,并且希望能够在 JSON 文档中包含 JSONPointer 而无需双重转义。
如果您仔细阅读规范,您会注意到:
JSON 字符串表示
JSON 指针可以用 JSON 字符串值表示。每
[RFC4627],第 2.5 节,引号 '"' (%x22) 的所有实例,
反斜线 '\' (%x5C) 和控制 (%x00-1F) 字符必须是
逃跑了。请注意,在将 JSON 字符串作为 JSON 指针处理之前,
反斜杠转义序列必须是非转义的。
另一个原因是允许 URI 编码。
根据this discussion,它几乎是插入符号'^'。 另请注意,URL 中允许使用波浪号“~”,而不允许使用插入符号“^”。 不过,请参阅 http://jkorpela.fi/tilde.html 以了解与 URL 中的波浪线相对应的内容。
【讨论】: