JSONPathテスター
JSONPath 式で JSON を検索し、各マッチとそのパスを表示
ローカル実行
loading…
このツールについて
自分の JSON に対して JSONPath 式をテストし、すべてのマッチをその値と具体的なパスの両方とともに確認できます。日常的な使用をカバーする構文をサポートします。ドット記法とブラケット記法、配列インデックス(負数を含む)、ワイルドカード、ユニオン(['a','b'])、再帰下降($..price)です。
マッチごとのパス出力が地味に便利な部分です。深いドキュメントに $..id をクエリすると、各結果がそれがどこにあるか($.data.items[3].id)を正確に教えてくれ、そのままコードに貼り付けられます。「このかたまりのどこか」を正確な住所に変えるのです。
フィルター式([?(@.price < 10)])はまだ実装されていません — ツールは間違った結果を返す代わりに、その旨を明示的に伝えます。JSONPath の使用の大半を占める構造的な抽出については、すべてが機能します。
よくある質問
- $.a.b と $..b の違いは何ですか?
- $.a.b は正確な 1 本のルートをたどります。ルートのキー a、次にその中のキー b です。$..b(再帰下降)はドキュメント内の任意の深さにあるすべての b を見つけます。再帰下降は強力ですが驚きも与えます — 想定していなかったものの中にネストされた b キーにもマッチするのです。
- スペースやハイフンを含むキーにはどうアクセスしますか?
- 引用符付きのブラケット記法です。$['my key'] または $.data['content-type']。ドット記法は有効な識別子に近い名前のキーにしか使えません。
- 負の配列インデックスは使えますか?
- 使えます — [-1] は最後の要素、[-2] は最後から 2 番目で、Python が広めて RFC 9535 が採用した慣習に従います。[0] は変わらず最初の要素です。
- JSONPath は標準化されていますか?
- 2024 年からされています — RFC 9535 が構文と意味論を定義しています。それ以前に書かれた実装はエッジケース(特にフィルターとユニオン)で互いに異なるため、同じ式でもライブラリによって挙動が違うことがあります。デプロイに使う実装に対してテストしてください。