JSONPathテスター
JSONとJSONPath式(RFC 9535準拠)を入力すると、一致する値とその件数をその場で確認できます。
入力例
結果
JSONとJSONPath式を入力して「実行」を押してください。
このツールでできること
JSONPathテスターの主な機能です。
- JSONとJSONPath式(RFC 9535準拠)を入力して、一致する値をその場で確認できます
- 一致件数を常に表示し、「JSONが不正」「JSONPathが不正」「Validだが0件」を明確に区別します
- 値がnullのpathと、そもそも存在しないpathを区別して表示します
- 結果を重複排除・並べ替えせず、そのままの件数・順序で表示します
- 一致した値のpath(normalized path)を任意で併記できます
- 結果をコピーできます
- 処理はブラウザ内で完結し、入力・結果を外部へ送信しません
手順を見る
- JSONを入力します
- JSONPath式($から始まる式)を入力します
- 「実行」を押します
- 一致した値・件数を確認します(必要ならpathも併記できます)
- 必要なら結果をコピーします
こんなときに使えます
こんな場面でJSONPathテスターが役立ちます。
利用シーンを見る
- APIレスポンスから必要な値を取り出すJSONPath式を組み立てて確認したいとき
- 設定ファイルやログの中から、特定のpathが何件・どの値にマッチするか確認したいとき
- 複雑にネストしたJSONから、目的の値までのpathを確認したいとき
- テストデータ作成時に、想定したJSONPath式が意図どおりに動くか事前に試したいとき
JSONPathテスターの仕組みと注意点
このツールの動作の仕組みを説明します。
詳しい解説を見る
RFC 9535準拠であり、特定実装の独自拡張には対応していません
本ツールはIETF標準であるRFC 9535(JSONPath: Query Expressions for JSON)にのみ準拠しています。世の中には歴史的経緯からJSONPathの実装ごとに構文・挙動が異なるものが存在しますが、本ツールはそれらの独自拡張(script expression等)をサポートしません。「どのJSONPath実装とも完全互換」というものではない点にご注意ください。
0件・null・存在しないpathの違い
構文として正しいJSONPath式の一致が0件であることは正常な結果として扱い、エラーにはしません。また、値がnullであるpath(例: {"a":null}に対する$.a)と、そもそも存在しないpath($.b)は明確に区別され、前者はnullを1件の結果として返し、後者は0件になります。
結果を重複排除・並べ替えしません
$..*やfilter式などで同じ値が複数箇所に一致した場合でも、値が同じという理由で自動的に取り除く(deduplicate)ことはしません。結果の順序も、ライブラリが返す順序をそのまま表示しており、独自の並べ替え(sort)は行いません。
入力上限・巨大な結果への対応(Web Worker不使用)
JSON入力は最大500,000文字、JSONPath式は最大1,000文字、JSONのネスト構造は最大64階層までを上限としています。評価結果も最大10,000件までとし、それを超える場合は打ち切って表示します。JSONPathの評価は正規表現のような病的なバックトラッキング(ReDoS)を起こさない性質のため、現時点ではWeb Workerを使わずブラウザのメインスレッドで直接処理しています。
一致したpath(normalized path)の併記
「一致したpathも表示する」を有効にすると、一致した値に加えて、その値がJSON内のどこにあったかを示すpath(RFC 9535のNormalized Path形式。例: $['users'][0]['name'])を併記できます。このpathはライブラリが公式に提供する機能から取得したものをそのまま表示しており、本ツール側で独自に組み立て直すことはしていません。
JSONの編集・書き換えや高度な機能は対象外です
本ツールはJSONPath式の一致確認に特化しており、JSONの編集・JSONPathによる値の書き換えや削除・autocomplete・visual builder・JMESPathやjqなど他のクエリ言語への対応は行っていません。また、JSONPath式をコードとして実行することはなく、入力されたJSON・JSONPath式・抽出結果を外部サーバーへ送信することもありません。
よくある質問
どのJSONPath実装の構文にも対応していますか?
いいえ。本ツールはIETF標準のRFC 9535にのみ準拠しています。JSONPathには実装ごとに異なる独自拡張(script expression等)が存在しますが、本ツールはそれらをサポートしません。
一致件数が0件の場合はエラーになりますか?
いいえ。JSONPath式の構文自体が正しければ、一致が0件であることは正常な結果として表示されます。「JSONが不正」「JSONPathの構文が不正」「Validだが0件」の3つは明確に区別して表示します。
users[*].name のように$を省略しても実行できますか?
いいえ。RFC 9535ではJSONPath式は必ず$から始まる必要があり、本ツールも$の省略を自動的に補完しません。$から始まらない入力は構文エラーとして表示されます。
同じ値が複数回一致した場合、まとめて1件にされますか?
いいえ。値が同じという理由で自動的に重複を取り除く(deduplicate)ことはしません。また結果の順序も独自に並べ替えず、ライブラリが返す順序のまま表示します。
巨大なJSONや$..*のような結果件数が多い式を試すとブラウザが固まりませんか?
JSON入力は最大500,000文字、JSONPath式は最大1,000文字、ネストは最大64階層、評価結果は最大10,000件までを上限としており、超過時はエラー表示または打ち切り表示します。JSONPathの評価は正規表現のような病的なバックトラッキングを起こさないため、現時点ではWeb Workerを使わずメインスレッドで処理しています。
入力したJSONやJSONPath式、抽出結果はサーバーへ送信されますか?
いいえ。JSONPathの評価処理はすべてブラウザ内で完結しており、入力内容や抽出結果がサーバーへ送信されることはありません。