JSON Pointer テスター & ビルダー
ドキュメントと /items/0/name のようなポインターを貼り付けてください。名前にスラッシュやチルダが含まれるときはセグメントビルダーを使います。
ブラウザ内でローカルに実行
ドキュメントと /items/0/name のようなポインターを貼り付けてください。名前にスラッシュやチルダが含まれるときはセグメントビルダーを使います。
ブラウザ内でローカルに実行
RFC 6901 の JSON Pointer を JSON ドキュメントに対して解決し、選ばれた値・デコード済みのパスセグメント・値の型を表示します。ポインターは空文字列(ドキュメント全体を選択)か、スラッシュで区切ったセグメント列です。たとえば /users/0/name は users 配列の先頭要素に入り、その name を読みます。
セグメントビルダーは逆方向の処理です。1 行に 1 セグメントを入力すると、エスケープ済みのポインターに組み立てます。名前にスラッシュやチルダが含まれていても ~1 と ~0 に変換されるため、パスが壊れません。処理はすべてページ内で完結し、コピーで解決値をクリップボードに移せます。
ポインターはスラッシュで分割され、先頭のスラッシュは開始位置を示すだけです。//empty は名前が空文字列のプロパティを、/a~1b はキー a/b を指します。エスケープはスラッシュが ~1、チルダが ~0 の 2 つだけで、チルダの後ろが 0 でも 1 でもない場合(ポインターの末尾を含む)は、リテラルとして読まずにエラーで拒否します。
URI フラグメント形式も使えます。#/users/0/name とパーセントエンコードした #%2Fusers%2F1%2Fname は同じセグメントになり、#/a%20b はキー a b を読みます。ポインターの前後の空白は解析前に取り除かれるため、/a の後ろの空白は無視されます。
配列の位置は RFC 6901 に厳密に従います。セグメントがインデックスとして扱われるのは 0 か、先頭に 0 を付けない数字列のときだけです。/arr/1 は 2 番目の要素を選び、/arr/01・/arr/-・配列の末尾を超えるインデックスは見つかりません。JSON Patch で配列の末尾を表すハイフンは、ここでは読み取れる値ではありません。
オブジェクトは独自プロパティ名の完全一致で照合するため、空白や Unicode を含むキー、__proto__ のような名前もほかのキーと同じように解決されます。ワイルドカードや検索はありません。値は型に応じて表示され、文字列はそのまま、数値と真偽値は JSON として、null は null として、オブジェクトと配列は整形され、指標に値の型と解決状況が出ます。
セグメントからの組み立てでは、各行を個別にエスケープし、スラッシュで連結します。~ を ~0 に置き換えてから / を ~1 にする、RFC 6901 が求める順序です。リストが空ならドキュメント全体を選ぶ空のポインターになり、ドキュメント側が空のときはポインターを書き込んで「セグメントから組み立てた」と伝えるだけで、値をでっち上げません。
解決・組み立て・サンプル・コピーはどれもブラウザー内で動き、ネットワークリクエストを送りません。オフラインでも、外部に出せないデータでも使えます。画面に値がない間はコピーも動きません。JSON が不正、エスケープが不正、ポインターが見つからない場合は、直前の値が消去されているため誤ってコピーされることはありません。