JSONPath 評価ツール(オンライン)
JSONPath式をJSONに対してテストし、マッチをブラウザ内でライブに確認。データは端末上に留まります。
JSONはブラウザ内でローカルに解析・照会され、アップロードされることはありませんが、機微な本番データをオンラインツールに貼り付けるのは避けてください。
先にツリー全体を読みたいですか?JSONビューアーをお試しください。
JSONPath 評価ツール について
このJSONPath評価ツールでは、JSONPath式でJSONドキュメントを照会し、入力に応じてマッチが更新される様子を見られます。任意のJSONオブジェクトや配列を貼り付け、$.store.book[*].author、$..price、$.items[?(@.active)] のようなパスを入力すると、マッチしたノード数、整形されたJSONとしてのマッチ値、そしてJSONポインターに切り替えるトグルが表示されます。JSONPathテスターとして完全な構文に対応します。$ ルート、ドットとブラケットによる子アクセス、.. 再帰下降演算子、[*] ワイルドカード、配列スライス、ユニオン、@ と比較を用いたフィルタ式です。例の式をクリックするとクエリボックスに入ります。不正なJSONや壊れたパスは、空白の画面ではなく明確なエラーを出します。すべてはブラウザ内で動作するため、評価するJSONは端末上に留まります。
機能
- ライブ結果:JSONや式を編集するとマッチ数・値・パスが更新される
- マッチした値(整形JSON)と各マッチのJSONポインターのパスを切り替え
- 再帰下降($..)・ワイルドカード([*])・配列スライス・ユニオン・フィルタ式に対応
- [?(@.price < 10)] や [?(@.active)] のような述語でノードの内容をフィルタ
- ワンタップでクエリボックスを埋めるクリック可能な例の式
- 不正なJSONと不正なJSONPath式とで異なるエラーを表示
- マッチした値やパスの一覧をワンクリックでコピー
- 深くネストしたオブジェクトや大きな配列もページを離れず処理
JSONPath 評価ツール の使い方
- JSONを左側のJSONパネルに貼り付けるか入力します。
- クエリボックスにJSONPath式を入力するか、例の1つをクリックします。
- 右側でマッチした値を読み、その上のマッチ数を確認します。
- Pathsに切り替えて各マッチのJSONポインターを見て、結果をコピーします。
例
入力
$.store.book[?(@.price < 10)].title
出力
[
"Sayings of the Century",
"Moby Dick"
]
フィルタ式が10未満の本だけを残し、各タイトルを射影します。
よくあるエラーとトラブルシューティング
- パスをまだ書いていないのに、結果パネルに「Invalid JSON」と表示される。 — まず左パネルのJSONを直してください。末尾のカンマ・シングルクォート・引用符のないキーがあると解析が止まります。不安ならJSON整形ツールにかけてください。
- [?(@.price < 10)] のようなフィルタが、フィールドが存在するのにマッチを返さない。 — フィルタは生の値を比較するので、そのフィールドが文字列でなく数値であること、@ が各配列要素を指すことを確認してください。文字列の比較は引用符で囲みます。例:[?(@.color=="red")]。
- $.book[0] は何も返さないが $..book[0] は動く。 — $. はルートからの正確なパスのみをたどります。bookがネストしている場合は、完全なパスを書くか、.. 再帰下降演算子を使って任意の深さで検索してください。
よくある質問
- JSONPathの $.. と $. の違いは何ですか。
- $. はルートから階層ごとに正確なパスをたどるため、$.store.book は store 直下の book キーだけにマッチします。$.. は再帰下降演算子で、$..book はドキュメント内の任意の深さにあるすべての book キーを見つけます。フィールドがどこにあるか分からないときは $.. を使ってください。
- このJSONPath評価ツールはフィルタ式に対応していますか。
- はい。フィルタは [?(...)] 構文を使い、@ が現在のノードを表します。たとえば $.items[?(@.active)] や $.store.book[?(@.price < 10)] です。数値・文字列・真偽値を比較でき、&& と || で条件を組み合わせられます。
- Pathsトグルは何を表示しますか。
- 各マッチに対して値の代わりにJSONポインターを返します。/store/book/0/author のような文字列で、ドキュメント内のノードの位置を示します。ポインターは、値が何かだけでなくどこにあるかを知りたいときに役立ちます。
- なぜ式が想定より多くの結果にマッチするのですか。
- ワイルドカードと再帰下降は貪欲です。[*] は配列の全要素やオブジェクトの全プロパティにマッチし、$.. はツリー全体を走査します。特定のキー、インデックス、[0:2] のような配列スライス、フィルタで結果を絞り込んでください。
- 一度に複数の配列要素を選択できますか。
- はい。[0,2] のようなユニオンで特定のインデックスを選んだり、[1:3] のようなスライスで範囲を、[-1:] で最後の要素を選んだりできます。どちらもパスで到達した任意の配列で機能します。
- クエリを実行するとき、JSONはどこかに送信されますか。
- いいえ。式はすべてブラウザ内で評価されるため、貼り付けたJSONや実行したクエリは端末上でローカルに処理され、アップロードされることはありません。
関連ツール
すべての ArrayKit ツール