JSON Path / JSON Pointerテスター
JSONデータとクエリ(JSONPathまたはJSON Pointer)を入力すると、マッチした値とその絶対パスを一覧表示します。APIレスポンスから特定の値を取り出すクエリの動作確認や、jq・各種JSONPathライブラリに渡す式の事前検証に便利です。JSON自体の整形や構文チェックをしたい場合は JSON整形 もあわせてご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
例: $.store.book[*].title
| # | パス | 値 |
|---|
注意点
- JSONPathは jsonpath-plus ライブラリの実装に準拠します。フィルタ式(
[?(@.price>10)])や再帰下降(..)を含む拡張構文に対応しますが、実装によって細部の挙動が異なる場合があります。 - JSON Pointerは1箇所だけを指す記法のため、常に単一の結果(またはエラー)になります。複数の値をまとめて取得したい場合はJSONPathを使用してください。
- JSON Pointerの先頭に
#が付いた形式(例: OpenAPI/JSON Schemaの$ref: "#/components/schemas/Foo")も、その#を読み飛ばして解釈します。 - すべての処理はブラウザ内で完結しており、入力したJSONやクエリがサーバーに送信されることはありません。
用語解説
JSONPath
JSONデータの中から特定の値を指し示すためのクエリ言語です。`$.store.book[0].title` のように、XPathのJSON版に近い記法でオブジェクトや配列の階層をたどれます。`$` はルート、`.` はプロパティ、`[*]` はワイルドカード(すべての要素)、`..` は再帰下降(階層を問わず一致するものをすべて検索)を表します。
JSON Pointer
RFC 6901で定義された、JSON内の1箇所を指し示すためのシンプルな記法です。`/store/book/0/title` のように "/" 区切りでキーや配列インデックスをたどります。JSONPathと異なり複数マッチやワイルドカードには対応せず、常に1箇所だけを指します。キーに含まれる "/" は "~1"、"~" は "~0" としてエスケープします。
フィルタ式
JSONPathで `[?(@.price > 10)]` のように条件付きで要素を絞り込む記法です。`@` は現在たどっている要素自身を表します。
よくある質問
JSONPathとJSON Pointerはどう使い分けますか?
JSONPathはフィルタ式やワイルドカードで複数の値をまとめて取り出せます。JSON Pointerは1か所だけを指す記法で、結果は常に単一の値(またはエラー)です。複数の値が欲しいときはJSONPathを選んでください。
フィルタ式や再帰下降(..)は使えますか?
はい。[?(@.price>10)] のようなフィルタ式や、.. による再帰下降にも対応しています。実装はjsonpath-plusライブラリに準拠しており、他のライブラリやjqとは細部の挙動が異なる場合があります。
OpenAPIの$refのように「#/」で始まるポインタも使えますか?
はい。JSON Pointerの先頭に # が付いた形式(例: #/components/schemas/Foo)も、# を読み飛ばして解釈します。
このページをシェア
