System.JSON.TJSONPathParser
Delphi
TJSONPathParser = class
C++
class PASCALIMPLEMENTATION TJSONPathParser : public System::TObject
Inhaltsverzeichnis
Eigenschaften
| Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
|---|---|---|---|---|
| class | public | System.JSON.pas System.JSON.hpp |
System.JSON | System.JSON |
Beschreibung
Parser eines JSON-Pfads.
Ein JSON-Pfad ist ein String, der einen Pfad zu einem angegebenen Element innerhalb von JSON-Daten festlegt. Ein JSON-Pfad ist für JSON, was XPath (EN) für XML ist.
Unterstützte Syntax für JSON-Pfade
TJSONPathParser implementiert eine Untermenge der von Stefan Gössner definierten JSON-Pfad-Spezifikation (JSON path specification defined by Stefan Gössner (EN)). Ausdrücklich unterstützte Elemente sind:
- Untergeordnete Operatoren für Objekte:
- Verwenden Sie
., um auf Objekteigenschaften zu zugreifen, die keinen Punkt in ihren Namen enthalten. Verwenden Sie beispielsweiseroot.child, um auf die Eigenschaftchilddes Objektsrootzu zugreifen. - Verwenden Sie
[], um auf Objekteigenschaften zu zugreifen, die Anführungszeichen in ihren Namen enthalten. Verwenden Sie beispielsweiseroot['child.name']oderroot["child.name"], um auf die Eigenschaftchild.namedes Objektsrootzu zugreifen.
- Verwenden Sie
- Indizierungsoperator (
[]) für Arrays. Verwenden Sie beispielsweiseroot[0], um auf das erste Element des Arraysrootzu zugreifen.
Diese Operatoren unterstützen keine speziellen Ausdrücke, sondern nur tatsächliche Werte (Objekteigenschaften oder Array-Index).
Verwenden von TJSONPathParser
Beim Erstellen einer Instanz von TJSONPathParser müssen Sie den Ziel-JSON-Pfad an den Konstruktor übergeben.
Rufen Sie nach dem Erstellen einer Instanz von TJSONPathParser NextToken auf, um durch die Token des angegebenen JSON-Pfads zu iterieren, bis IsEof True ist oder NextToken ein Error-Token zurückgibt.
Token enthält das Token, das vom letzten Aufruf von NextToken zurückgegeben wurde.
Ein Codebeispiel zur Verwendung von TJSONPathParser finden Sie bei der Implementierung von TJSONIterator.Find.