仕様と根拠
JSON Pointer の書き方
RFC 6901 3 節では、JSON Pointer は 0 個以上の「/ とそれに続く名前」の並びです。名前の中の ~ は ~0、/ は ~1 と書きます。たとえば項目名 a/b は /a~1b、m~n は /m~0n です。空の名前の項目は「/」だけで指せます。このツールでは空の行は無視するため、JSON 全体を指す空の Pointer は書けません。
取り出し方の規則
RFC 6901 4 節に従い、左から順に辿ります。名前は ~1 を / に直してから ~0 を ~ に直します(順序を逆にすると ~01 を誤って直します)。オブジェクトでは同じ文字の名前の項目、配列では 0 または先頭が 0 でない整数で位置を指します。「-」は存在しない末尾の次の要素を指すためエラーです。
エラーのとき
/ で始まらない指定、~ の後ろが 0 か 1 でない指定、存在しない名前や位置、配列やオブジェクトでない値の下を辿る指定、同じ名前が重複していて決まらない指定は、指定ごとにエラーにします。ほかの指定の結果は表に出ます。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 6901 JavaScript Object Notation (JSON) Pointer | 2026年10月28日 | 3 節(構文)・4 節(評価。~1 を先に置き換える・配列の位置の書き方・「-」・重複する名前)・6 節(URI フラグメント形式。非対応) |
| RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format | 2026年10月28日 | 4 節(オブジェクト)・5 節(配列) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- # で始まる URI フラグメント形式(RFC 6901 6 節)は扱いません。# を除いた形で書いてください。
- 空の Pointer(JSON 全体)は、空の行が無視されるため指定できません。
- ワイルドカードや配列をまたぐ検索(JSONPath のような書き方)はできません。1 つの Pointer は 1 つの場所を指します。
- 数値は元の書き方のまま出力します。値を計算や変換はしません。
ご利用にあたって
- 取り出した値は貼り付けた JSON の中身そのものです。共有する前に個人情報が含まれないか確認してください。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。