JSONを貼り、JSONPath式を書くと、一致した値と、それぞれの場所(正規化パス)をその場で表示します。
| 書き方 | 意味 |
|---|---|
| $ | ルート(JSON全体) |
| .key / ['key'] | オブジェクトのキー。空白や記号を含むキーは ['my-key'] の形 |
| [0] / [-1] | 配列の番号(0始まり)。マイナスは後ろから数える |
| [1:3] / [::2] / [::-1] | スライス [開始:終了:ステップ]。終了の番号は含まない |
| * / [*] | すべての子(オブジェクトの値・配列の要素) |
| ..key / ..* | 再帰(下の階層をすべてたどって探す) |
| [0,2] / ['a','b'] | 和集合(書いた順に並べる) |
| [?(@.price < 10)] | フィルタ。@ は調べている要素。比較は == != < <= > >= |
| [?(@.a && @.b == 'x')] | &&(かつ)・||(または)・!(否定)・( ) でまとめる |
| [?(@.isbn)] | 存在チェック。そのキーを持つ要素だけ(値が null や false でも「ある」扱い) |
JSONPathの標準仕様 RFC 9535(2024年)の基本的な書き方に沿って、このページ内の自前のパーサで評価しています(eval は使いません)。RFC の関数 length()・count()・match()・search()・value() には対応していません。また、実装(Jayway、jsonpath-plus など)によって、フィルタの書き方や結果の並び順が少し違うことがあります。本番で使うライブラリの挙動も確認してください。オブジェクトのキーが「2」のような整数の形だと、ブラウザの仕様で並び順が数字順になります。入力したJSONは送信も保存もしません。
JSONを貼ってJSONPath式を書くと、一致した値の配列と、それぞれの場所を $['store']['book'][0] の形(正規化パス)で表示します。APIレスポンスから値を取り出す式や、設定ファイルの参照式を試すときに使えます。
$.items[-1] のようにマイナスの番号を使います。最後の2件なら $.items[-2:] です。古い記事にある [(@.length-1)] の書き方はRFC 9535にはなく、このツールでもエラーとして案内します。
$..book[?(@.price < 10 && @.tag == 'x')] のように、? の後ろに条件を書き、@ が調べている要素を表します。「例のデータ」の本屋の在庫を選ぶと、この式のボタンでそのまま試せます。
$.app-name のようなドット記法では書けないので、$['app-name'] のようにかっこと引用符で囲みます。「設定ファイル(記号入りのキー)」の例で $['app-name'] や $.features['dark mode'] を試せます。
$.store.book[*].author は book 配列の各要素の author だけを取ります。$..author は階層の深さに関係なく、JSON全体から author というキーをすべて探します。正規化パスの一覧を見ると、どこで一致したかを確認できます。