8

JSON ポインターの仕様には、次のように記載されています。

文字 '~' (%x7E) および '/' (%x2F) は、JSON ポインターで特別な意味を持ちます

「/」が何に使用されるかは明らかですが、チルダがどのような目的で使用されるかはわかりません (エスケープする必要があることと、その方法についてのみ言及します)。

4

1 に答える 1

11

JSON Pointer では、パス内のプロパティ名の一部として使用~1したいものをエンコードするために使用する必要があります。/そのため~、エスケープ シーケンスのインジケーターとして特別な意味を持ち、実際のチルダを表現しなくなります。実際のチルダは、エスケープ シーケンスとして表現されます~0

言い換えれば(JSON Pointer仕様からの引用):

各参照トークンの評価は、エスケープされた文字シーケンスをデコードすることから始まります。これは、最初にシーケンス '~1' の出現を '/' に変換し、次にシーケンス '~0' の出現を '~' に変換することによって実行されます。この順序で置換を実行することにより、実装は、'~01' を最初に '~1' に変換し、次に '/' に変換するエラーを回避します。変身)。

ここで JSON パッチ テストを見てみるのも面白いかもしれません: https://github.com/json-patch/json-patch-tests/blob/master/spec_tests.json#L200 ( を検索~)

于 2015-07-20T07:36:38.543 に答える