System.JSON.Builders.TJSONIterator
Delphi
TJSONIterator = class
C++
class PASCALIMPLEMENTATION TJSONIterator : public System::TObject
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
class | public | System.JSON.Builders.pas System.JSON.Builders.hpp |
System.JSON.Builders | System.JSON.Builders |
Beschreibung
Ermöglicht die Iteration durch den Inhalt, den ein JSON-Reader bereitstellt.
Iteratoren sind vergleichbar mit JSON-Readern, sie bieten aber einige zusätzliche Funktionen und verhalten sich geringfügig anders. Zum Beispiel:
- Iteratoren müssen nicht alle Token durchlaufen. Sie können zu bestimmten Array- oder Objektelementen vorrücken, Teile von Arrays und Objekten überspringen oder gesamte Arrays und Objekte überspringen.
- Wenn sich ein Iterator am Token eines Array- oder Objektwertes befindet, können Sie den zugehörigen Array-Index oder den Objektschlüssel auslesen. Sie müssen diese Informationen nicht separat protokollieren.
- Iteratoren halten bei Objektschlüsseln nicht an, sondern überspringen Schlüssel und iterieren zum Token des zugehörigen Wertes. Sie können den Schlüssel eines Wert-Token aus der Eigenschaft Key des Iterators auslesen.
Iterieren durch die Eingabedaten
So iterieren Sie durch den Inhalt des Quell-JSON-Readers:
- Erstellen Sie einen JSON-Iterator, der Daten aus einem JSON-Reader liest.
- Rufen Sie Next auf, damit der Reader zum ersten JSON-Token der Eingabedaten gesetzt wird.
- Type gibt den Typ des Token an.
- Verwenden Sie beim Iterieren durch ein Array Index, um den Index des aktuellen Token abzurufen. Verwenden Sie beim Iterieren durch ein Objekt Key, um den Schlüssel des aktuellen Token abzurufen.
- Mit den Werteigenschaften des Iterators können Sie auf den Wert des aktuellen Token zugreifen. Der Typ eines Token bestimmt den Typ seines Wertes, der wiederum die Werteigenschaft bestimmt, mit der Sie auf den Wert des Token zugreifen. Wenn beispielsweise Type
Boolean
ist, können Sie mit AsBoolean auf den booleschen Wert des aktuellen Token zugreifen.
- Rufen Sie Next so lange auf, bis alle JSON-Token der Eingabedaten durchlaufen wurden. Next gibt
False
zurück, wenn das Ende der Eingabedaten erreicht ist.
Mit Rewind können Sie den Iterator zurück an den Anfang der Eingabedaten setzen.
Werteigenschaften
TJSONIterator stellt mehrere Eigenschaften bereit, die Sie zum Ermitteln des Wertes des aktuellen Token des Iterators auslesen können. Der Wert der Eigenschaft Type bestimmt, mit welchen Eigenschaften Sie den Wert auslesen können.
Die folgende Tabelle enthält einige Werte der Eigenschaft Type und Eigenschaften von TJSONIterator, mit denen Sie den Wert des aktuellen Token auslesen können:
Wert von Type | Eigenschaften von TJSONIterator |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AsString |
|
Um auf den Wert des aktuellen Token in einem anderen Format zuzugreifen, können Sie AsValue oder AsVariant verwenden.
Verwenden der Rekursion
TJSONIterator ist standardmäßig ein flacher Iterator. Jedes Mal, wenn der Iterator ein Token mit dem Typ TJsonToken.StartObject
oder TJsonToken.StartObject
erreicht, müssen vor dem nächsten Aufruf von Next Recurse aufrufen, um sicherzustellen, dass der Iterator nicht das gesamte Array oder Objekt überspringt.
Bei der Rekursion können Sie mit Return den verbleibenden Inhalt des aktuellen Arrays oder Objekts überspringen und den Iterator zurück auf das dem Array oder Objekt übergeordnete Objekt setzen.
Am Beginn der Iteration durch den Quell-JSON-Reader ist Depth 0. Bei jeder Verwendung der Rekursion, um ein Array oder ein Objekt zu durchlaufen, wird Depth um 1 erhöht. Beim Verlassen eines Arrays oder Objekts, entweder weil das Ende erreicht ist oder weil Sie das Ende mit Return übersprungen haben, wird Depth um 1 verringert. InRecurse gibt an, ob der Iterator für Depth einen höheren Wert als 0 enthält oder nicht.
ParentType gibt den Typ des dem aktuellen Token übergeordneten Objekts an, TJsonToken.StartObject
oder TJsonToken.StartObject
. Wenn Depth 0 ist, dann ist ParentType TJsonToken.None
.
Überprüfen, ob bestimmte Daten vorhanden sind
Mit Find können Sie feststellen, ob der Inhalt des Quell-JSON-Readers Daten enthält, die mit einem gegebenen JSON-Pfad übereinstimmen.