本文へスキップ
にゃんこツール

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)も、# を読み飛ばして解釈します。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる