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… のみ有効、パディング不可)、"-" を使った(読み取り時に値なし)、または空でないポインタが / で始まっていない。エラーメッセージが失敗したトークンを正確に示します。
関連ツール
JSON Patch ビルダー (RFC 6902)
source/targetペアからRFC 6902 JSON Patchを生成、または既存のpatchをドキュメントに適用。add·remove·replace·move·copy·test op対応。
JSONPath テスター
JSON 文書に対して JSONPath クエリ(`$.store.book[*].author`、`$..price`)を実行、一致値を確認。
Quoted-Printable エンコーダー & デコーダー
テキストを MIME Quoted-Printable(RFC 2045)にエンコード、または復号 — =XX エスケープ・ソフト改行・UTF-8 に対応、エンコード時は 76 文字で折り返し — ブラウザ内で。
JWK ↔ PEM 変換ツール
JWK や JWKS 全体を PEM 公開鍵に、またその逆に変換し、各鍵の RFC 7638 サムプリントもブラウザ内で計算します。
Punycode 変換器
国際化ドメインを Unicode(`münchen.de`)と Punycode ASCII(`xn--mnchen-3ya.de`)間で変換。
Base32 エンコーダ / デコーダ
Base32 (RFC 4648) のエンコード・デコード。Standard と base32hex の両方に対応 — TOTP シークレットや Crockford 風 ID に便利。