JSONPathブラケット記法($["key"]) — 特殊文字を含むキーのアクセス
特殊文字、スペース、動的キーを含むプロパティにアクセスするためのJSONPathブラケット記法を学びます。ドット記法との構文比較も含みます。
Basics
詳細な説明
JSONPathにおけるブラケット記法
ブラケット記法は角括弧と引用符付き文字列を使用してオブジェクトプロパティにアクセスします。ドット記法のより汎用的な代替手段であり、プロパティ名に特殊文字が含まれる場合に必須です。
構文
$["propertyName"]
$["parent"]["child"]
ブラケット記法が必要な場面
以下のJSONに対して:
{
"first-name": "Alice",
"last name": "Smith",
"2024-revenue": 50000,
"tags": ["developer", "speaker"]
}
$["first-name"]は"Alice"を返します(キーにハイフン)$["last name"]は"Smith"を返します(キーにスペース)$["2024-revenue"]は50000を返します(数字で始まるキー)
これらはプロパティ名が有効なJavaScript識別子ではないため、ドット記法では動作しません。
ドット記法との組み合わせ
1つの式の中で両方の記法を自由に混在させることができます:
$.users[0]["first-name"]
$.config["api-keys"].production
複数キーの選択(ユニオン)
ブラケット記法は複数のプロパティを一度に選択することもサポートしています:
$["first-name", "last name"]
これは両方の値を単一の結果配列で返します。
重要な考慮事項
- 常に引用符を使用 — 実装に応じて、プロパティ名にシングルクォートまたはダブルクォートを使用します。
- エスケープされた引用符 — プロパティ名自体に引用符が含まれる場合はエスケープが必要です。
- ドット記法と互換 — シンプルな名前の場合、
$.nameと$["name"]は等価です。
ブラケット記法により、命名規則に関係なくすべてのプロパティにアクセスできるため、厳密な命名規則に従わない実世界のJSONデータを扱う際に不可欠です。
ユースケース
外部システム、サードパーティAPI、レガシーデータベースからのJSONを扱う際に使用します。プロパティ名にハイフン、スペース、ドット、その他のドット記法では処理できない文字が含まれる場合に必要です。