JSON Pointer での値の抽出
大きな JSON から、指定した場所の値だけを取り出す。
大きな JSON を貼り付け、取り出したい場所を JSON Pointer(/items/0/name のような書き方)で指定すると、その場所の値と型を一覧にします。~0・~1 のエスケープや配列の位置の規則にも対応します。入力はブラウザの中だけで処理します。
JSON を貼って、指定した場所の値だけを取り出す
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 指定した場所 | 2 個 |
|---|---|
| 取り出せた | 2 個 |
| 取り出せなかった | 0 個 |
取り出した値
| 場所(JSON Pointer) | 型 | 取り出した値 |
|---|---|---|
| /items/1/name | 文字列 | "B" |
| /total | 数値 | 2 |
初期表示は入力例「配列の中の name と、total を取り出す」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- 取り出した値は貼り付けた JSON の中身そのものです。共有する前に個人情報が含まれないか確認してください。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。
使い方
- JSON を欄に貼り付けるか、ファイルを選びます。
- 取り出したい場所を JSON Pointer で 1 行に 1 つ書きます。例: /items/0/name は items の最初の要素の name です。
- 表で、場所ごとの型と値を確かめます。取り出せない場所は、指摘で理由を確かめて書き直します。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| 配列の中の name と、total を取り出す | エラー 0 件・警告 0 件・情報 0 件 |
| / や ~ を含む項目名と、空の項目名 | エラー 0 件・警告 0 件・情報 0 件 |
| 範囲外の位置と、先頭が 0 の位置 | エラー 2 件・警告 0 件・情報 0 件 |
| 配列の「-」は存在しない要素 | エラー 1 件・警告 0 件・情報 0 件 |
このツールでできないこと(制約)
- # で始まる URI フラグメント形式(RFC 6901 6 節)は扱いません。# を除いた形で書いてください。
- 空の Pointer(JSON 全体)は、空の行が無視されるため指定できません。
- ワイルドカードや配列をまたぐ検索(JSONPath のような書き方)はできません。1 つの Pointer は 1 つの場所を指します。
- 数値は元の書き方のまま出力します。値を計算や変換はしません。
よくある質問
JSON Pointer と JSONPath は同じですか?
別の仕様です。JSON Pointer(RFC 6901)は /a/b/0 のように 1 つの場所を指す単純な書き方で、このツールが扱います。$.a.b[0] や $..name のような書き方は JSONPath で、扱いません。
項目名に / や ~ が含まれるときはどう書きますか?
/ は ~1、~ は ~0 と書きます。項目名が a/b なら /a~1b、m~n なら /m~0n です。複数の置き換えが重なる ~01 は項目名 ~1 を指します。
貼り付けた JSON はどこかに送られますか?
送られません。処理はお使いのブラウザの中だけで行い、ページは通信を禁止する設定(CSP の connect-src)で配信しています。社外秘の JSON でも内容を送信しませんが、共用の端末では使い終わったらページを閉じてください。