JSONPath クエリ
最終更新:2026年10月2日
JSON ドキュメントに対して JSONPath 式を実行し、一致した値とそのパスを表示します。クエリはブラウザ内で実行され、ドキュメントはどこにも送信されません。
検索言語にできること
JSONPath は JSON にとって、フォルダーのパスがファイルシステムにとってそうであるようなものです。どの値を欲しいかを簡潔に述べる手段です。$ はドキュメントのルート、.name はプロパティへ進み、[…] は配列の中で選択します。
- 子:
$.store.bicycle.color、名前を引用する必要があるときは$['store']['bicycle']['color']。 - ワイルドカード:
$.store.book[*].titleは各書籍のタイトル、$.store.*は store オブジェクトの各値。 - 再帰下降:
$..priceはどの階層のpriceでも見つけます。強力ですが、一致しすぎやすい——下記参照。 - インデックスとスライス:
[0]、最後の要素は[-1]、先頭 2 件は[0:2]、[0:5:2]で刻み。 - 和集合:
[0,2]と['book','bicycle']は複数を一度に選びます。 - フィルタ:
[?(@.price < 10)]は価格が 10 未満の項目を残します。演算子は== != < <= > >=、&&と||で組み合わせられます。
フィルタは真偽値ではなく存在を判定します
フィルタ内の単独のパスは、そのプロパティがあるかを尋ねます。したがって [?(@.inStock)] は inStock が false の項目にも一致します——プロパティは存在するからです。これが RFC 9535 の解釈です。値で判定したいときは明示してください:[?(@.inStock == true)]。これは JSONPath で最もよくある驚きであり、このツールではなく言語の性質です。
意図的に行わないこと
length()、match()、search() といったフィルタ関数は実装しておらず、正規表現、括弧内のスクリプト式、一部のライブラリが追加する親・兄弟の拡張にも対応していません。これらを使ったクエリは、黙って誤った結果を返すのではなく、メッセージとともに拒否されます——このページは対応範囲を明示しているので、ここでの「一致」はそのままの意味です。
よくある質問
どの JSONPath 構文に対応していますか?
ルートの $、.name または ['name'] による子の取得、ワイルドカード .* と [*]、再帰下降 ..name と ..*、負の値も含む配列インデックス、スライス [start:end:step]、[0,1] や ['a','b'] のような和集合、そして [?(@.price < 10)] 形式のフィルタ(演算子は == != < <= > >=、&& と || で組み合わせ可能)です。
対応していないものは?
length()、match()、search() などのフィルタ関数、正規表現、括弧内のスクリプト式、および一部のライブラリが追加する JSONPath 拡張(親・兄弟参照など)には対応していません。これらを使ったクエリは、黙って誤った結果を返すのではなく、拒否されます。
?(@.inStock) が inStock が false の項目にも一致するのはなぜですか?
フィルタ内の単独のパスは真偽値ではなく存在の判定だからです。プロパティがあるかどうかを尋ねており、false に設定されたプロパティも存在します。真偽値で判定したいときは ?(@.inStock == true) と明示してください。これは RFC 9535 のフィルタの解釈です。
一致した値がどこから来たか分かりますか?
はい。各結果は見つかったパスとともに一覧され、クエリを書くときと同じドットと角括弧の記法なので、そのパスをそのままクエリや他の JSON ツールに貼り付けられます。
私のドキュメントはアップロードされますか?
いいえ。ドキュメントはブラウザ内で JSON.parse により解析され、クエリはメモリ上で実行されます。何もアップロードされず、ネットワークを切断しても動作します。
$..price が思ったより多く返るのはなぜですか?
再帰下降はドキュメントのすべての階層を訪れるため、..price はどこにある price プロパティでも見つけます——配列の中、ネストしたオブジェクトの中、無関係な枝の中でも同様です。絞り込むには $.store.book[*].price のようにパスで限定してください。
代わりにスキーマで文書を検査したいですか?JSON Schema が使えます。不具合を見つけましたか?お問い合わせ。