JSON ポインターの仕様には、次のように記載されています。
文字 '~' (%x7E) および '/' (%x2F) は、JSON ポインターで特別な意味を持ちます
「/」が何に使用されるかは明らかですが、チルダがどのような目的で使用されるかはわかりません (エスケープする必要があることと、その方法についてのみ言及します)。
JSON ポインターの仕様には、次のように記載されています。
文字 '~' (%x7E) および '/' (%x2F) は、JSON ポインターで特別な意味を持ちます
「/」が何に使用されるかは明らかですが、チルダがどのような目的で使用されるかはわかりません (エスケープする必要があることと、その方法についてのみ言及します)。
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 ( を検索~
)