JSONPath複数結果 — 結果配列の操作
JSONPathが複数の結果を配列として返す仕組みを理解します。ワイルドカード、再帰的降下、フィルタを使った複数値式の操作方法を学びます。
Array Operations
詳細な説明
JSONPathにおける複数結果
JSONPathの基本概念の一つは、式が複数の値を返せることです。単一の値を返すシンプルなキー参照とは異なり、多くのJSONPath演算子は0個、1個、または多数のマッチを含む結果配列を生成します。
複数の結果を返す演算子
$.users[*].name // ワイルドカード — すべてのユーザー名
$..email // 再帰的降下 — 任意の深さのすべてのメール
$.items[0:5] // スライス — 最初の5項目
$.data[?(@.active)] // フィルタ — すべてのアクティブなレコード
$["a", "b"] // ユニオン — キーaとbの値
結果セットの特性
- 順序付き — 結果はドキュメント内に出現する順序を維持します。
- 重複を含む可能性 — 同じ値が複数回出現する場合、結果にも複数回表示されます。
- 同種または混合 — 結果はすべて同じ型、または文字列、数値、オブジェクト、配列の混合になり得ます。
空の結果
マッチする要素がない場合、結果はエラーではなく空の配列 [] です。これにより、オプショナルまたは可変構造のデータに対してJSONPathを安全に使用できます。
複数結果の処理
結果配列を抽出した後の一般的な操作:
- カウント: 長さを確認してマッチ数を把握
- 先頭/末尾: 結果にインデックス
[0]または[-1]を使用 - 変換: 結果をマッピングしてデータを再構成
- 集計: 合計、平均、その他の統計を計算
ユースケース
APIからのレコード配列をクエリする際に複数結果の理解が不可欠です。例えば、カタログからすべての商品名を抽出する、バッチレスポンスからすべてのエラーコードを収集する、ブログ投稿全体のすべてのユニークなタグを一覧表示する場合などに活用できます。