01 / 例
例
namae/a~bnamae~1a~0bコード整形 / MULTIVERTO
プロパティ名をエスケープし、1つの JSON Pointer トークンとして使用できる形式にします。
01 / 例
namae/a~bnamae~1a~0b02 / ガイド
プロパティ名を一つの JSON Pointer トークンとして使えるようにエスケープします。まずチルダを ~0 に、次にスラッシュを ~1 に置き換えます。これはトークン内の文字に対する処理であり、経路全体のスラッシュや URL のパーセント符号化とは別です。
入力例は name/a~b で、変換結果は name~1a~0b です。結果を使う前に、区切り文字、名前、値の型がどう変わったか確認してください。JSON Pointer トークンのエスケープでは、ファイルやリクエスト全体を変換する前に、小さなレコードを受け取り側のパーサーで確かめてください。プロパティ名を、1つの JSON Pointer トークンとして使えるようエスケープします。
JSON Pointer は、文字どおりのスラッシュで区切られた参照トークンの列です。このページはトークン一つを変換し、ポインター全体や URL フラグメントを変換するものではありません。RFC 6901 ではトークン内の二つの文字を特別扱いし、チルダを ~0、スラッシュを ~1 と書きます。デコード時は ~1 を ~0 より先に処理する必要があります。そのため ~01 はスラッシュではなく ~1 になります。JSON 文書全体を符号化するのではなく、RFC 6901 ポインターへ入れる一つのプロパティ名を用意します。入力欄の内容全体を未処理の名前一つとして扱ってください。文字どおりに a/b という名前のプロパティのトークンは a~1b、a~b なら a~0b です。両方の文字がある場合は最初にチルダをエスケープし、後から追加した ~1 のチルダを再処理しないようにします。ツールは結果にパス区切りを追加しません。入れ子のプロパティを指すには各名前を独立して符号化し、トークンを自分で連結します。入力の単なるスラッシュは名前の中のスラッシュを意味し、パス開始の指示ではありません。
ポインターのトークンを確認するには、プロパティ名をエスケープして出力を復号し、チルダやスラッシュを含め元のテキストと完全に一致するか調べてください。JSON Pointer 全体を組み立てる際は、エスケープ済みのトークン間にスラッシュを入れます。先頭のスラッシュはポインターのパスに属し、このツールに与えるトークンの一部ではありません。復号順序が重要なので、特別な入力 ~1 も別に試します。スラッシュとチルダの両方を含む名前を入力して、その出力を復号してください。復元した名前が正確に一致する必要があります。パス先頭のスラッシュはトークンをエスケープした後に追加します。元データと結果は見た目が似ていても役割が異なります。上記の方法が定義するのは対応する範囲であり、その形式名のあらゆる拡張ではありません。厳格な受け取り側に渡すなら、多くの記録を変える前に小さな既知の例を試してください。検証に失敗した場合は元の入力と最初に報告されたエラーに戻ります。生成結果だけを編集すると原因が隠れることがあります。
ガイドを探す