JSONツール

JSONPathテスター値の出どころまで確認

価格フィルターのサンプルから始め、値とパスを見比べてください。自動実行はオフにできます。

JSONPathテスター

JSON入力

JSONはブラウザー内で処理します。明示的に保存した式だけをローカルに記録します。

一致結果

正規化パス値

値のプレビューは各1,200文字まで。コピーとダウンロードには選択した表示の全結果が含まれます。

RFC 9535 · jsonpath-rfc9535 1.3.0 · JavaScript式は実行しません

結果が古いため、出力と送信は無効です。

別のツールで続ける

クリック後に新しいタブが開きます。データはメモリー経由で渡し、URLには含めません。上限は500,000文字です。

JSONPathテスターは、APIレスポンスの深い階層から特定の値を探すときに役立ちます。同名の項目が複数あっても、パスがあればどのレコードの値か判断できます。

このJSONPathオンラインテスターでは、方言を自動で切り替えません。アプリで使う前にJSONPath式の範囲を確かめ、狭い指定と再帰的なJSON検索の結果を比較してください。

JSONPathテスターで確認できること

同じ値でも位置を区別

JSONPathテスターは値に正規化パスを添えます。二つの本が同じ価格でも、それぞれの配列インデックスが残るため、一つの一致としてまとめられません。

データツリーで選ばれた二つの枝と、一致する値および位置を示す経路。

次の作業に渡す範囲を選択

元の文書全体と一致した値の配列を選び分けてから、整形やCSV変換へ送れます。問い合わせが成功しただけでは移動しません。CSVへの送信はオブジェクトまたはその配列に限ります。

文書全体または選択した部分を整形文書や表へ渡す流れ。

意図した範囲だけを選ぶには

01

再帰検索の広さを確かめる

書名サンプルは本の配列をたどります。一方、$..priceは自転車の価格も見つけます。パスを読み、欲しいレコード以外まで選んでいないか確認してください。

02

実行するタイミングを決める

自動実行は編集後350ミリ秒待ちます。オフにすると実行ボタンとCtrl/Cmd+Enterを使えます。入力や式を変えた時点で古い結果の出力と送信を無効にします。

03

一件でも配列として扱う

値の出力には常に外側の配列が付きます。パス表示ではパス文字列の配列を出力します。保存するのは式だけで上限20件。読み込んでも現在のJSONは置き換わりません。

値と位置をセットで調べる

標準のフィルターと関数

$.store.book[?@.price < 10]で低価格の本を選択できます。&&、||や標準のlength、count、match、search、valueを利用でき、条件をJavaScriptとして実行することはありません。

階層に合わせた選択

子の名前、ワイルドカード、再帰下降、負のインデックス、スライス、複数セレクターに対応します。同じセレクターを書けば重複する一致が生じる場合があり、自動削除はしません。

空配列とnullを区別

一致なしは[]、値がnullのノードに一件一致すれば[null]です。どちらも成功し得る結果です。構文エラーは別の表示になり、コピーやダウンロードを許可しません。

全件出力と段階的な表示

結果は50件ずつ表示し、各値のプレビューは1,200文字までです。コピーとダウンロードは全結果を含みます。保存済みの式は削除前に確認でき、削除を一度取り消せます。

受け付ける構文と制限

RFCの実装を固定
jsonpath-rfc9535 1.3.0を使用し、RFC 9535に基づきます。Jayway、Goessner、kubectl、JSONPath Plusの全拡張を再現するものではありません。jq、JMESPath、独自関数は受け付けません。
厳密なJSONと数値の扱い
コメント、末尾カンマ、JSON5、重複キー、安全な範囲外の整数、数値オーバーフローはエラーです。通常の小数はJavaScriptの数値となり、指数表記、末尾のゼロ、負のゼロは出力時に保ちません。
処理量には上限あり
入力500,000文字、深さ100、50,000ノード、式2,000文字、一致5,000件、合計出力2,000,000文字まで。ワーカーは2秒で中止します。上限超過時に一部の結果を完成品として出力しません。
ノード選択に限定
元のデータは編集せず、集計、グループ化、新しいオブジェクトの作成もしません。文字列や数値の配列をCSV用の行へ自動で包み直すことはありません。
保存と受け渡しは明示操作
ファイルやURLの読み込み、クラウド同期、データ入り共有リンクはありません。別ツールへの送信は新しい同一オリジンのタブにメモリー経由で行い、上限500,000文字。送信元を開いたままにしてください。

JSONPathテスターのよくある質問

JSONPathとJSON Pointerの違いは?

JSON Pointerは一つの位置を指定するための形式です。JSONPathテスターではワイルドカードやフィルターによって複数ノードを選べます。表示する正規化パスもJSON PointerではなくJSONPathの表記です。

ドル記号と@は何ですか?

$は文書全体のルートです。@はフィルターで現在調べている候補ノードを指します。たとえば@.priceはその本の価格を表すため、ルートからのパスとは意味が異なります。

フィルターは任意のJavaScriptを実行しますか?

いいえ。式はRFC対応のパーサーで処理し、任意のJavaScriptコードを実行しません。ただしmatchやsearchの正規表現処理も計算時間を使うため、ワーカーの2秒制限が適用されます。

一致しないと空配列になるのはなぜ?

結果は一致ノードのリストだからです。該当するものがなければ空の[]になり、nullの値に一致した場合は[null]になります。件数を見れば「値が空」と「一致がない」を区別できます。

入力JSONは送信されますか?

JSONPathテスターの問い合わせ処理でJSONをサーバーへ送信することはありません。保存操作の対象は式だけです。別ツールへの送信は、自分で対象データを選びリンクを押した場合だけ行います。

クエリの処理に問題がありましたか?

価格フィルターを試す

JSONPathテスターで価格の絞り込みと再帰検索を比べ、パスが意図した範囲を示しているか確かめてから次の作業へ進めましょう。