🔍
JSONPath クエリツール
JSONPath 式を使用して JSON からデータをクエリおよび抽出
JSON 入力
JSONPath
例:$.store.book[0].title, $.store.book[*], $..author❓JSONPath とは
JSONPath は JSON のクエリ言語で、XML の XPath に類似しています。パス式を使用して複雑な JSON 構造をナビゲートしてデータを抽出するための標準化された構文を提供します。JSONPath は $ をルートオブジェクトを表すために使用し、. を子アクセスに、[] を配列インデックスに、* をワイルドカードに、.. を再帰的降下に使用します。フィルター [?(@.property > value)]、配列スライス [start:end:step]、複数セレクターをサポートします。JSONPath は API テスト、データ変換、構成クエリ、JSON 操作タスクで広く使用されています。複雑な JavaScript コードを書くことなく、深くネストされた JSON から特定の値を抽出することを簡素化します。
✨機能
🔍
高度なクエリ構文
ワイルドカード (*)、再帰的降下 (..)、配列スライス ([start:end])、フィルター ([?(@.price < 10)])、複数パスセレクターを含む完全な JSONPath 構文をサポート
📋
パス式テンプレート
一般的なクエリ用の事前構築テンプレート:ルートアクセス ($)、直接子 ($.key)、配列項目 ($.arr[*])、フィルター項目 ($.arr[?(@.id)])、再帰検索 ($..key)
✨
リアルタイムプレビュー
構文ハイライトされた JSON 入出力でクエリを即座に実行、一致パスを表示、結果数を表示し、ソース JSON で一致ノードをハイライト
💾
結果エクスポート
クエリ結果を JSON(配列または単一値)、表形式データの CSV、フォーマットされたテキストとしてエクスポート、ワンクリックコピーおよびダウンロードオプション付き
🎯
Use Cases
CODE
Development workflow
Use JSONPath Query Tool during implementation to generate, inspect, format, or verify technical assets without switching to heavier project tooling.
REVIEW
Code review and cleanup
JSONPath Query Tool helps review copied snippets, generated files, configuration fragments, and implementation details before they are committed or shared.
DOC
Technical documentation
Turn practical examples from JSONPath Query Tool into clearer pull requests, runbooks, onboarding notes, and API or SDK documentation.
📋使用ガイド
JSON データ入力
クエリしたい JSON データを貼り付けまたはアップロード
JSONPath 記述
JSONPath 式を入力するか、一般的なパターンのテンプレートを使用
クエリ実行
クエリを実行して構文ハイライト付きの一致結果を確認
結果エクスポート
お好みの形式で抽出されたデータをコピーまたはダウンロード
📚技術紹介
📝JSONPath 構文
JSONPath 式は $(ルートオブジェクト)で始まり、ドット表記 ($.property) またはブラケット表記 ($['property']) を使用してアクセスします。子ノードは . セパレータ ($.store.book) を使用し、配列は [index] または [*] をすべての項目に使用します。配列スライス [start:end:step] は [0:3](最初の 3 項目)や [-1](最後の項目)のような範囲を抽出します。再帰的降下演算子 .. はすべてのレベルを検索:$..author はネストの深さに関係なくすべての author プロパティを見つけます。ユニオン演算子 [,] は複数の項目を選択:$[0,2,5] は特定の配列インデックスを取得します。
🔍フィルター式
フィルターは [?(@.condition)] 構文を使用して基準に一致する項目を選択します。@ は反復処理の現在のノードを表します。比較演算子:==、!=、<、<=、>、>=。論理演算子:&& (and)、|| (or)、! (not)。例:[?(@.price < 10)] は価格が 10 未満の項目を選択;[?(@.category == 'fiction' && @.price < 20)] は条件を組み合わせます。正規表現マッチング:[?(@.name =~ /pattern/)] は正規表現でフィルタリング。フィルターは階層全体の比較のために $ でルートを参照できます:[?(@.price < $.maxPrice)]。
🔧実装のバリエーション
JSONPath には構文にわずかな違いがある複数の実装があります:Goessner のオリジナル(JavaScript)、Jayway(Java)、jsonpath-ng(Python)。違いには、フィルター演算子(一部は @ vs $ を使用)、正規表現サポート、スクリプト式、関数拡張が含まれます。一部の実装は集約用に @.length、@.min()、@.max() などの関数を追加します。スクリプト式 [(@.price * @.quantity)] は計算を可能にします。親演算子 ^ と現在のパス ~ はコンテキストを提供します。サポートされている機能と構文の癖については、常にターゲット実装のドキュメントを確認してください。
🎯実用的なアプリケーション
JSONPath は API レスポンス解析で優れており、完全な逆シリアル化なしで REST API JSON レスポンスから特定のフィールドを抽出します。構成管理は JSONPath を使用してネストされた構成値をクエリおよび更新します。データ変換パイプラインは JSONPath を使用してソース JSON をターゲットスキーマにマップします。テストフレームワーク(Postman、REST Assured)は JSONPath アサーションを使用してレスポンス構造と値を検証します。ログ分析は JSON 形式のログから関連フィールドを抽出します。GraphQL と OpenAPI ツールはスキーマトラバーサルと検証に JSONPath を使用します。パフォーマンス:大規模 JSON の場合、ストリーミングパーサーまたはデータベース(MongoDB のクエリ構文、PostgreSQL の jsonb_path_query)を検討してください。
❓
よくある質問
❓
結果が空になるのはなぜですか?
パスが $ から始まっているか、キー名が正確か、配列インデックスが範囲内か確認してください。まずは単純なパスで段階的に検証しましょう。
💬
任意の深さでキーを検索するには?
再帰的降下演算子を使います:$..author は階層に関係なく author をすべて見つけます。
🔍
フィルターの書き方は?
[?(@.price < 10)] のように @ は現在の要素を示します。条件は && / || で組み合わせられます。
💡
空配列と null の違いは?
空配列は一致が無いこと、null は一致した値が null であることを意味します。元データとパスを確認してください。
📚
大きな JSON での性能対策は?
.. の多用を避け、範囲を絞ってからフィルタしてください。必要に応じてストリーミングやサーバー側処理を検討します。
🔗関連ドキュメント
User Comments
Loading...