レッスン 9

JSONPath クエリ

パス式でネストしたドキュメントから値を抽出する。

JSON ドキュメントが大きいとき、すべてのレベルを頭の中で辿らずに1 つのフィールドが必要になることが多い。JSONPath は、XML の XPath に似た精神で JSON ツリー内のノードを選択するクエリ言語です。

サンプルドキュメント

{
  "store": {
    "books": [
      { "title": "JSON 101", "price": 12.5 },
      { "title": "API Design", "price": 28 }
    ]
  }
}

よく使う式

意味
$ドキュメントのルート
$.store.booksbooks 配列
$.store.books[0].title最初の本のタイトル
$.store.books[*].priceすべての価格
$..priceルート下のどこかの price

$ を「ここから」、. を「子プロパティ」、[n] を配列インデックス、[*] を全要素、.. を再帰的降下と読みます。

ユースケース

  • ネストした API レスポンスからユーザー ID をテストやスクリプトで取得
  • 異種 payload 全体で level == "error" のログイベントをフィルタ
  • 統合ガイドで「どこにあるか」を文書化

JSONPath vs 手書きコード

JavaScript なら data.store.books[0].title と書けます。JSONPath が輝くのは:

  • API バージョン間で深さが変わる
  • 多くのファイルで同じパスを設定からクエリする
  • ツールがアドホック調査用のパス入力を提供する

限界

実装によって拡張(フィルタ、スライス)がわずかに異なります。本番パイプラインではライブラリバージョンを固定し、重要なパスにテストを追加してください。JSONPath は構造を読む — 無効な JSON は直しません。先にパースと検証を。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る