JSON ポインタ リゾルバ (RFC 6901)
開発
JSON ポインタは、/user/roles/0 のようなスラッシュ区切りパスで JSON 文書内の 1 つの値を指す標準(RFC 6901)の方法です。JSON Schema の $ref、JSON Patch、JSON Merge Patch、多くの OpenAPI ツールが内部で使っています。文書とポインタを貼り付けると、どの値を選ぶかを整形表示します。リゾルバは仕様を正確に実装します:空ポインタは文書全体を返し、~1 はリテラルのスラッシュ、~0 はリテラルのチルダを意味し(したがって "a/b" キーは /a~1b で到達)、配列インデックスは 0 か先頭ゼロなしの符号なし整数でなければならず、特殊トークン "-" は読み取り時に値を持ちません。URI フラグメントポインタ(#/user/roles/0)も受け付けてパーセントデコードします。さらに文書内の全ポインタを値プレビュー付きで一覧表示し、クリックで任意ノードへの正確なパスを見つけられます。すべてローカルで動作し、アップロードされません。
解決された値
"admin"
この文書のポインタ(クリックで使用)
| (ルート) | {…} (3) |
| /user | {…} (3) |
| /user/id | 42 |
| /user/name | "Ada" |
| /user/roles | […] (2) |
| /user/roles/0 | "admin" |
| /user/roles/1 | "editor" |
| /a~1b | "slash in key" |
| /settings | {…} (2) |
| /settings/theme | "dark" |
| /settings/limits | {…} (1) |
| /settings/limits/max | 100 |
空ポインタ = 文書全体。キーの / は ~1、~ は ~0 でエスケープ。#/a/b のような URI フラグメントも可。
使い方
- JSON 文書を貼り付けるか編集。
- JSON ポインタを入力(例:/user/name または #/settings/limits/max)するか、ポインタ一覧の行をクリック。
- 解決された値を読みます。キー内のスラッシュは ~1、チルダは ~0 でエスケープします。
よくある質問
- JSON ポインタは JSONPath とどう違いますか?
- JSON ポインタ(RFC 6901)は単純なスラッシュ区切りパスでちょうど 1 つの値を指し、JSON Schema・JSON Patch・OpenAPI が使います。JSONPath はワイルドカード・フィルタ・再帰下降で複数の値にマッチできるクエリ言語です。前者には本ツールを、後者には JSONPath テスターを使ってください。
- ~0 と ~1 とは?
- / がトークンを区切り、~ がエスケープ文字なので、キー内のリテラル / は ~1、リテラル ~ は ~0 と書きます。したがって "a/b" メンバーは /a~1b、"m~n" は /m~0n で到達します。アンエスケープ時は ~1 を ~0 より先に置換します。RFC の要求どおりです。
- 空ポインタは何を返しますか?
- 空文字列は文書全体を指す有効なポインタなので、JSON 値全体を返します。"/" は空ではありません — 空文字列トークンを 1 つ持つポインタで、キーが空文字列のメンバーを選びます。
- なぜポインタの解決に失敗したのですか?
- よくある理由:メンバーや配列インデックスが存在しない、配列インデックスに先頭ゼロがある(0, 1, 2… のみ有効、パディング不可)、"-" を使った(読み取り時に値なし)、または空でないポインタが / で始まっていない。エラーメッセージが失敗したトークンを正確に示します。
関連ツール
Base64 ↔ 16進数 変換
Base64 文字列を16進数バイトに、16進数を Base64 に戻します。URL セーフ対応、ブラウザ上で動作します。
Quoted-Printable エンコーダー & デコーダー
テキストを MIME Quoted-Printable(RFC 2045)にエンコード、または復号 — =XX エスケープ・ソフト改行・UTF-8 に対応、エンコード時は 76 文字で折り返し — ブラウザ内で。
ハッシュ生成 (SHA)
テキストから SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを生成。
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
Base64 エンコーダー / デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコード。
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。