【问题标题】:Purpose of tilde in JSON PointerJSON 指针中波浪号的用途
【发布时间】:2015-07-17 19:17:52
【问题描述】:

JSON Pointer 规范指出:

字符 '~' (%x7E) 和 '/' (%x2F) 在 JSON指针

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

【问题讨论】:

标签: json json-patch jsonpointer


【解决方案1】:

在 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(搜索 ~

【讨论】:

  • 啊,对不起,现在感觉很笨。我想我只是太习惯于转义字符在转义之外有自己的实际特殊功能的语法。
猜你喜欢
  • 1970-01-01
  • 2022-07-04
  • 2019-07-07
  • 2019-04-09
  • 1970-01-01
  • 2012-12-04
  • 2013-03-29
  • 2022-11-19
相关资源
最近更新 更多