System.JSON.Builders.TJSONIterator

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.TObjectTJSONIterator

Delphi

TJSONIterator = class

C++

class PASCALIMPLEMENTATION TJSONIterator : public System::TObject

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:

Iterieren durch die Eingabedaten

So iterieren Sie durch den Inhalt des Quell-JSON-Readers:

  1. Erstellen Sie einen JSON-Iterator, der Daten aus einem JSON-Reader liest.
  2. 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.
  3. 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

Boolean

AsBoolean

Bytes

AsBytes

CodeWScope

AsCodeWScope

Date

AsDateTime

DBRef

AsDBRef

Float

AsDouble
AsExtended

Integer

AsInteger
AsInt64

MaxKey

IsMaxKey

MinKey

IsMinKey

Null

IsNull

Oid

AsOid

RegEx

AsRegEx

String

AsString
AsGUID (wenn Sie wissen, dass der String eine GUID enthält)

Undefined

IsUndefined

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.

Siehe auch