JSONPath テスターの概要と機能
「JSONPath テスター」は、JSON データに対して JSONPath 式をテストするためのオンラインツールです。テキストエリアに JSON データを貼り付け、テキストフィールドに JSONPath 式を入力すると、その式に一致する値と、元の JSON 内におけるそのパスが即座に表示されます。これにより、作成した JSONPath 式が JSON データから具体的にどのような値を抽出するのかを正確に把握できます。
このツールは、API 開発者、テスター、データエンジニア、サポート担当者をはじめ、JSONPath 式が抽出するデータを理解したい方や、元の位置情報を保持したまま JSON から特定の値をコピーしたい方に最適です。
入力制限と仕様
本ツールには、安定した動作を提供するために以下の入力制限が設けられています。
- JSON 入力: テキストエリアに貼り付け可能な JSON データの最大サイズは 500,000 文字です。
- JSONPath 式: テキストフィールドに入力または貼り付け可能な JSONPath 式の最大長は 4,000 文字です。
サポートされる JSONPath パターン
本ツールは、以下のような一般的な JSONPath パターンを幅広くサポートしています。
- 再帰的下行:
$..priceのように、ネストされた深い階層から要素を探索します。 - フィルター:
[?@.price < 10]のように、特定の条件に合致する要素のみを抽出します。 - 配列のスライス: 配列から特定の範囲の要素を切り出します。
エラーメッセージとトラブルシューティング
入力データや式に問題がある場合、ツールは以下のエラーメッセージを表示して原因を知らせます。
- この JSON は有効ではありません。: 貼り付けられた JSON データの形式が正しくない場合に表示されます。
- この JSONPath 式は有効ではありません。: 入力された JSONPath 式の構文が誤っている場合に表示されます。
- この JSONPath を評価できませんでした。: JSONPath 式の評価処理自体が行えなかった場合に表示されます。
- この JSONPath の実行は制限時間を超過しました。式を絞り込むか、より小さなサンプルを使用してください。: 評価処理が短時間の制限時間を超えてタイムアウトした場合に表示されます。
- この JSON は、ここでテストするには大きすぎます。より小さなサンプルでお試しください。: JSON 入力が 500,000 文字を超えた場合に表示されます。
- この JSONPath 式は、ここでテストするには長すぎます。: JSONPath 式が 4,000 文字を超えた場合に表示されます。
出力結果の表示ルール
評価が正常に完了すると、以下のルールに従って結果が表示されます。
- 一致した値: JSONPath 式に一致した値の一覧が表示されます。
- 詳細: 各一致項目の詳細なビューを表示するヘッダーです。
- 一致数: 検出された一致の総数が表示されます。
- 最大表示制限: ツールが一度に表示する結果は最大 200 件です。一致数が 200 件を超える場合は「一致数: 200+」と表示され、あわせて「最初の
{max}件を表示しています。」という注意書きが表示されます。 - パスの同梱: 各結果には、その値が元の JSON 内で存在していた場所を示すパス情報が含まれます。
- 一致なし: 式に一致する値が存在しない場合は「一致する結果はありません。」と表示されます。
- クリア: 入力をクリアした後は「クリアしました。」と表示されます。
プライバシーとデータ処理
プライバシー保護のため、入力された JSON データおよび JSONPath 式のテスト処理はすべてお使いのブラウザ内で行われます。データが外部の BroBroGo にアップロードされることはありません。
よくある質問(FAQ)
どのような JSONPath 構文を使用できますか?
$.store.book[*].title のような一般的な JSONPath パターンをはじめ、$..price による再帰的下行、[?@.price < 10] などのフィルター、および配列のスライスが使用可能です。
各結果にパスが表示されるのはなぜですか?
パスは、その値が元の JSON 内のどこから取得されたかを示します。これにより、位置を見失うことなく一致したデータをコピーできます。
クエリがタイムアウトするのはなぜですか?
非常に広範囲な再帰クエリや巨大なサンプルデータは、処理に時間がかかる場合があります。このテスターは一定時間後に処理を停止するため、式を絞り込むか、より小さなサンプルを使用してください。