System.JSON.TJSONPathParser
Delphi
TJSONPathParser = class
C++
class PASCALIMPLEMENTATION TJSONPathParser : public System::TObject
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
| class | public | System.JSON.pas System.JSON.hpp |
System.JSON | System.JSON |
説明
JSON パスのパーサーです。
JSON パスとは、JSON データ内の特定の項目のパスを定義した文字列です。JSON の JSON パスは、XML の XPath のようなものです。
サポートされている JSON パス構文
TJSONPathParser は、Stefan Göessner によって定義された JSON パス仕様のサブセットを実装しています。特に、サポートされている要素は次のとおりです:
- オブジェクトの子演算子:
.を使用すると、名前にドットを含んでいないオブジェクトのプロパティにアクセスすることができます。たとえば、root.childを使用すると、rootオブジェクトのchildプロパティにアクセスすることができます。.を使用すると、名前に引用文字を含んでいるオブジェクトのプロパティにアクセスすることができます。 たとえば、root['child.name']やroot["child.name"]を使用すると、rootオブジェクトのchild.nameプロパティにアクセスすることができます。
- 配列の添字演算子(
[])。たとえば、root[0]を使用すると、root配列の最初の項目にアクセスすることができます。
これらの演算子では特別な式をサポートしていません。サポートしているのは実際の値(オブジェクトのプロパティや配列のインデックス)だけです。
TJSONPathParser の使い方
TJSONPathParser のインスタンスを作成するときに、対象の JSON パスをコンストラクタに渡す必要があります。
TJSONPathParser のインスタンスを作成したら、NextToken を呼び出して、IsEof が True になるか NextToken が Error トークンを返すまで、指定された JSON パスのトークンを反復処理します。
NextToken は、次のトークンのいずれも返すことができます。
| トークン | 説明 |
|---|---|
|
|
JSON パス内の次のトークンは、JSON 配列の項目のインデックスです。 TokenArrayIndex は、ターゲットのインデックスを保有します。 |
|
|
JSON パス内の次のトークンは、JSON オブジェクトのキー/値ペアのキーです。 TokenName には、ターゲットのキーが含まれています。 |
|
|
JSON パスの最後に到達しました。 パスの走査を続行することはできません。TJSONPathParser のこのインスタンスに NextToken をもう一度呼び出すと、例外が発生します。 |
|
|
指定された JSON パスにエラーがあります。 パスの走査を続行することはできません。TJSONPathParser のこのインスタンスに NextToken をもう一度呼び出すと、例外が発生します。 |
Token には、最後に NextToken を呼び出したときに返されたトークンが含まれています。
TJSONPathParser の使い方を示すコード例は、TJSONIterator.Find の実装を参照してください。