8

JSON 指针规范指出:

字符 '~' (%x7E) 和 '/' (%x2F) 在 JSON 指针中具有特殊含义

'/' 的用途很清楚,但我看不出波浪号的用途是什么(只提到它需要转义以及如何转义)。

4

1 回答 1

11

在 JSON 指针中,您需要使用~1来编码您想要/作为路径中属性名称的一部分。因此,~作为转义序列的指示符具有特殊含义,不再表示真正的波浪号。真正的波浪号表示为转义序列~0

换句话说(引自 JSON Pointer 规范):

每个参考标记的评估从解码任何转义字符序列开始。这是通过首先将任何出现的序列“~1”转换为“/”,然后将任何出现的序列“~0”转换为“~”来执行的。通过按此顺序执行替换,实现避免了将“~01”先变为“~1”然后变为“/”的错误,这是不正确的(字符串“~01”正确地变为“~1”之后转型)。

在这里查看 JSON Patch 测试可能会很有趣:https ://github.com/json-patch/json-patch-tests/blob/master/spec_tests.json#L200 (搜索~

于 2015-07-20T07:36:38.543 回答