高速・安全なJSONPathテスター
大規模なJSONデータや階層が深いJSONデータから、必要な情報を正確に抽出するのは面倒な作業です。このJSONPathテスターは、クエリの記述、テスト、デバッグをリアルタイムで行える環境を提供します。式を入力すると、ツールが即座にJSONデータを評価し、抽出された値と、その値が見つかった正確なパスの両方を表示します。
完全なクライアントサイドのJSONPath評価ツールであるため、すべての処理はお使いのデバイス上でローカルに行われます。JSONデータがサーバーに送信されることは一切ありません。そのため、データ漏洩やプライバシー侵害を心配することなく、本番環境のAPIペイロード、データベースのエクスポート、機密性の高い設定ファイルなどを安全に貼り付けることができます。
開発者向けの主な機能
- リアルタイム評価: JSONデータやクエリを変更すると、結果が即座に更新されます。送信ボタンをクリックしたり、サーバーの応答を待つ必要はありません。
- 安全なパース: このツールは安全な評価エンジン(
eval: 'safe')を使用してクエリを処理します。複雑なフィルター式を完全にサポートしつつ、悪意のあるコードの実行を防ぎます。 - パスの抽出: 一致した値を表示するだけでなく、すべての一致に対する絶対パスも生成します。これは、後で特定のノードをプログラムで更新する必要がある場合に非常に便利です。
- 組み込みサンプル: 構文に慣れていない場合は、書店のサンプルデータセットを読み込み、あらかじめ用意されたいくつかの式をクリックして、さまざまな演算子がどのように機能するかを確認できます。
JSONPathクエリの書き方
JSONPathは、JSONオブジェクトや配列を探索するために特定の構文を使用します。JSONPath式のロジックをテストする際は、以下の基本演算子を理解しておくと便利です。
$はルートオブジェクトまたは配列を表します。すべての絶対JSONPath式はこの記号から始まります。@は現在処理されているノードを表します。主にフィルター式の中で使用されます。.または[]はプロパティを選択するための子演算子です。例えば、$.store.bookと$['store']['book']は同じ動作をします。..は再帰的降下演算子です。階層の深さに関係なく、JSONツリー内のどこからでも特定のキーを検索します(例:$..priceはすべての価格を抽出します)。*はオブジェクトや配列内のすべての要素に一致するワイルドカードです。例えば、$.store.*は store オブジェクトの直下にあるすべての要素を選択します。[?()]はフィルター式を適用します。内部では標準的な論理演算子を使用できます。例えば、$..book[?(@.author == 'Nigel Rees')]は、その特定の著者が書いたすべての本を検索します。[start:end:step]は、Pythonのように配列をスライスできます。$.store.book[-1:]は配列内の最後の本を選択します。
よくある利用シーン
APIの開発とデバッグ 最新のRESTやGraphQL APIは、巨大なJSONペイロードを返すことがよくあります。レスポンスを解析・確認するための一時的なコードを書く代わりに、このJSONPathオンラインツールにペイロードを貼り付けるだけで、データ構造が正しいか、クエリが適切なフィールドを抽出できているかをすばやく検証できます。
自動テスト 統合テストやE2Eテスト(Postman、RestAssured、Playwrightなどのツールを使用)を書く際、JSONレスポンス内に特定の値が存在するかをアサートする場面が頻繁にあります。JSONPathテスターを使えば、テストスイートにハードコードする前にクエリ文字列を完璧に仕上げることができます。
データの抽出と変換 データ移行やETL(抽出・変換・ロード)パイプラインの構築では、特定の配列やオブジェクトを切り出す作業がよく発生します。このツールを使えば、目的のデータを抽出するために必要な正確なパスを特定できます。ソースデータがXMLの場合は、まずXML JSON 変換コンバーターを使用できます。また、ミニファイ(圧縮)されたデータを整形してから確認したい場合は、JSON フォーマッターが役立ちます。さらに、JSON 比較ツールを使えば、変換前後のデータの変化を確認することも可能です。