JSONPathテスター

JSONを貼り、JSONPath式を書くと、一致した値と、それぞれの場所(正規化パス)をその場で表示します。

$ から始めます
0件一致

一致した場所(正規化パス)

    結果の配列(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は送信も保存もしません。

    JSONPathテスターでできること

    JSONを貼ってJSONPath式を書くと、一致した値の配列と、それぞれの場所を $['store']['book'][0] の形(正規化パス)で表示します。APIレスポンスから値を取り出す式や、設定ファイルの参照式を試すときに使えます。

    使い方

    1. 「例のデータ」から本屋の在庫・APIのレスポンス・設定ファイルのどれかを選ぶか、「JSON」欄に自分のJSONを貼ります。
    2. 「JSONPath式」欄に $ から始まる式を入力します。下の式のボタンを押すと、その例をすぐ試せます。
    3. 一致した件数、「一致した場所(正規化パス)」と値のプレビュー、「結果の配列(JSON)」がその場で表示されます。
    4. JSONや式に間違いがあると、何行目・何文字目かと理由が日本語で出て、位置に ^ の印が付きます。
    5. 「結果をコピー」で値の配列(JSON)を、「パスをコピー」で正規化パスの一覧をコピーできます。

    計算の仕組みと注意点

    よくある質問

    JSONPathで配列の最後の要素を取るには?

    $.items[-1] のようにマイナスの番号を使います。最後の2件なら $.items[-2:] です。古い記事にある [(@.length-1)] の書き方はRFC 9535にはなく、このツールでもエラーとして案内します。

    条件に合う要素だけを取り出すフィルタの書き方は?

    $..book[?(@.price < 10 && @.tag == 'x')] のように、? の後ろに条件を書き、@ が調べている要素を表します。「例のデータ」の本屋の在庫を選ぶと、この式のボタンでそのまま試せます。

    キーにハイフンや空白が入っているときは?

    $.app-name のようなドット記法では書けないので、$['app-name'] のようにかっこと引用符で囲みます。「設定ファイル(記号入りのキー)」の例で $['app-name'] や $.features['dark mode'] を試せます。

    $..author と $.store.book[*].author の違いは?

    $.store.book[*].author は book 配列の各要素の author だけを取ります。$..author は階層の深さに関係なく、JSON全体から author というキーをすべて探します。正規化パスの一覧を見ると、どこで一致したかを確認できます。