JSONPath検索が役立つ場面
- REST APIのレスポンスからID、名前、価格などの一覧を抽出する
- 監視・テスト・ETLで使用するJSONPath式をコードへ組み込む前に確認する
- 配列内の条件に一致するオブジェクトだけを抽出する
- JSON Pointerへ変換し、ログやレビューで対象位置を共有する
JSONPath式を確認する手順
- JSONを貼り付けるか.jsonファイルを開きます。機密情報を含む場合は共有前にマスキングします。
- $から検索を始め、ドット記法や角括弧で目的の階層まで指定します。
- 配列は添字、ワイルドカード、スライス、フィルターを使って必要な要素へ絞ります。
- 検索結果の値、型、正規化パス、JSON Pointerを確認してコピーまたは保存します。
フィルターと実装差の注意点
JSONPathには複数の実装があり、標準外の演算子やスクリプト式はライブラリごとに動作が異なります。実際に利用する環境の仕様も確認し、まず標準的な比較、存在確認、関数で表現できるか検討してください。
テスターは任意JavaScriptコードを評価しません。入力JSONと検索式はブラウザ内だけで処理されますが、結果を共有するときは値にトークンや個人情報が残っていないか確認してください。
具体例:価格が10未満の書籍タイトルを抽出する
store.book配列にtitleとpriceを持つ書籍が並ぶJSONから、価格が10未満の書籍だけを探します。まず$.store.book[*]で配列全体を確認し、次にフィルターを追加します。
$.store.book[?(@.price < 10)].titleを実行すると、条件に一致した要素のtitleだけが返ります。結果の正規化パスも確認すると、元JSON内の位置を追跡できます。
- JSONを入力し、$.store.book[*].titleで全タイトルを確認します。
- 式を$.store.book[?(@.price < 10)].titleへ変更します。
- 抽出された値、型、正規化パス、JSON Pointerを確認します。
- 必要な値だけをコピーするか、全結果をJSONで保存します。
実装先のJSONPathライブラリが標準外の構文を使う場合は、同じ式を実際の実行環境でもテストしてください。
よくある質問
- JSONPath式の中でJavaScriptを実行できますか?
- いいえ。安全のため任意JavaScript評価には対応せず、比較、論理演算、存在確認、標準関数を専用パーサーで処理します。
- JSON Pointerとの違いは何ですか?
- JSONPathは条件やワイルドカードで複数の値を検索できます。JSON Pointerは1つの位置を/区切りで示す形式で、検索結果の場所を共有するときに役立ちます。
ブラウザで試す
入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。
JSONPathテスターを開く