JSON-Framework der Reader und Writer
Nach oben zu JSON
Das JSON-Framework der Reader und Writer stellt Klassen und Methoden zum Lesen von JSON-Daten einem Stream bzw. Schreiben der JSON-Daten in einen Stream bereit.
- Hinweis: RAD Studio hat zwei Frameworks zur Verwaltung von JSON-Daten. Weitere Einzelheiten über diese Frameworks finden Sie unter JSON.
Mit dem JSON-Framework der Reader und Writer können Sie Folgendes ausführen:
- JSON schreiben: Mit der Klasse TJSONObjectBuilder können Sie ein JSON-Objekt erstellen. Die Klasse
TJSONObjectBuilderist ein Wrapper der Klasse TJsonWriter, die die Logik für die Serialisierung der JSON-Daten bereitstellt.
- Obwohl Sie JSON-Objekte mit den Klassen
TJSONObjectBuilderoderTJsonWriterschreiben können, sollten Sie dazu die KlasseTJSONObjectBuilderverwenden, da sie ein Fluent-Interface (EN) zum Schreiben von JSON-Objekte bereitstellt.
- Weitere Einzelheiten finden Sie unter Schreiben von JSON-Objekten.
- JSON lesen: Mit der Klasse TJSONIterator können Sie durch die JSON-Daten iterieren. Die Klasse
TJSONIteratorist ein Wrapper der Klasse TJsonReader, mit der Sie JSON-Format serialisierte Daten lesen können.
- Obwohl Sie JSON-Daten mit den Klassen
TJSONIteratoroderTJsonReaderlesen können, sollten Sie dazu die KlasseTJSONIteratorverwenden, da sie zusätzliche Funktionen zum Iterieren durch JSON-Daten bereitstellt.
- Weitere Einzelheiten finden Sie unter Lesen von JSON-Objekten.
- BSON-Daten lesen und schreiben: Mit diesem Framework können Sie BSON-Daten unter Verwendung der Klassen TBsonReader und TBsonWriter lesen und schreiben.
- Weitere Einzelheiten finden Sie unter BSON.
Inhaltsverzeichnis
Schreiben von JSON-Objekten
Verwenden Sie das Framework System.JSON.Builders, um JSON-Objekte zu schreiben. Sie müssen eine Instanz von TJSONObjectBuilder erstellen und die Methode BeginObject aufrufen, um das JSON-Objekt zu starten. Die Methode TJSONObjectBuilder.BeginObject gibt eine TJSONCollectionBuilder.TPairs-Klasse für die Methodenverkettung (EN) zurück.
Die Methodenverkettung zum Schreiben von JSON umfasst die folgenden Klassen:
- TJSONCollectionBuilder.TPairs: Zum Hinzufügen von Schlüssel/Wertepaaren zu einem JSON-Objekt.
- TJSONCollectionBuilder.TElements: Zum Hinzufügen von Elementen zu einem JSON-Array.
- TJSONCollectionBuilder.TParentCollection: Zum Hinzufügen von Schlüssel/Wertpaaren zu einem JSON-Objekt sowie zum Hinzufügen von Elementen zu einem JSON-Array. Die Klasse
TParentCollectionrepräsentiert die übergeordnete Struktur; diese Klasse wird in Methoden wie z. B.EndObjectundEndArrayzurückgegeben, da die übergeordnete Struktur ein JSON-Objekt oder ein JSON-Array sein könnte.
Sie müssen keine Instanzen der obigen Klassen erstellen, die erforderlichen Instanzen werden während der Methodenverkettung beim Aufruf der Methoden zurückgegeben.
Hinzufügen von JSON-Objekten
Verwenden Sie die Methode BeginObject, um ein Objekt zu starten.
Rufen Sie Add auf, um dem JSON-Objekt ein Schlüssel/Wertpaar hinzufügen.
Rufen Sie AddPairs auf, um dem JSON-Objekt mehrere Schlüssel/Wertpaare hinzufügen.
Sie können auch die folgenden Methoden aufrufen:
AddNullzum Hinzufügen eines Schlüssels mit dem Wertnull.AddUndefinedzum Hinzufügen eines Schlüssels mitundefiniertenWert.AddMinKeyzum Hinzufügen eines Schlüssels mit dem WertMinKey.AddMaxKeyzum Hinzufügen eines Schlüssels mit dem WertMaxKey.
Rufen Sie die Methode EndObject auf, um das Objekt zu beenden.
Hinzufügen von JSON-Arrays
Verwenden Sie die Methode BeginArray, um ein Array zu starten.
Rufen Sie Add auf, um dem JSON-Array einen Wert hinzufügen.
Rufen Sie AddElements auf, um dem JSON-Array mehrere Werte hinzufügen.
Sie können auch die folgenden Methoden aufrufen:
AddNullzum Hinzufügen einesNull-Werts.AddUndefinedzum Hinzufügen einesundefiniertenWerts.AddMinKeyzum Hinzufügen einesMinKey-Werts.AddMaxKeyzum Hinzufügen einesMaxKey-Werts.
Rufen Sie die Methode EndArray auf, um das Array zu beenden.
Beenden von JSON-Objekten und -Arrays
Rufen Sie EndObject und EndArray auf, um Objekte bzw. Arrays zu beenden. Sie können auch EndAll aufrufen, um die gesamte Struktur gleichzeitig zu beenden.
Lesen von JSON-Objekten
Verwenden Sie das System.JSON.Builders-Framework, um JSON-Objekte zu lesen.
Sie müssen eine Instanz von TJSONIterator erstellen, indem Sie den JSON-Reader, der die JSON-Daten enthält, festlegen.
Verwenden Sie die Methode Next, um zum ersten JSON-Element zu gelangen. Um zu den nächsten Elementen der aktuellen JSON-Ebene zu gelangen, rufen Sie jeweils Next auf.
Um direkt zu einem bestimmten Wert, Objekt oder Array zu gelangen, rufen Sie die Methode Next auf und übergeben den Namen des gewünschten Elements. Dieses Element muss sich in derselben JSON-Ebenenstruktur wie der Iterator befinden. Befindet sich der Iterator in einem Array, können Sie Next aufrufen und den Array-Index als String übergeben, um direkt zu diesem Array-Element zu gelangen. Mit Index können Sie den aktuellen Index des Arrays, das gerade gelesen wird, abrufen. Index gibt -1 zurück, wenn Sie gerade kein Array lesen.
Mit der Methode Rewind können Sie den Iterator an den Anfang der JSON-Daten setzen.
Um ein bestimmtes Element zu suchen, verwenden Sie die Methode Find, und geben Sie den Pfad zu dem gewünschten Element an. Diese Methode gibt True zurück, wenn das Element gefunden wurde, und setzt den Iterator auf dieses Element. Mit dieser Methode können Sie durch verschiedene JSON-Ebenen iterieren; geben Sie den vollständigen Pfad zu dem jeweiligen Element in der Punktnotation an, wie z. B. 'entities.urls[0].indices[1]'.
- Hinweis: Die Methoden
RewindundFindlösen eine Exception aus, wenn Sie bei der Erstellung des Iterators keine Prozedur zum Zurücksetzen übergeben haben.
Iterieren durch JSON-Ebenen
- Eintreten in eine Array- oder Objektstruktur
- Mit der Methode
Nextiterieren Sie durch die aktuelle JSON-Ebene. Um in ein Array oder Objekt einzutreten, rufen Sie Recurse auf, bevor Sie den Iterator auf ein JSON-Token mitStartArray- oderStartObject-Typen setzen. Rufen SieRecurseerneut direkt nach dem Aufruf vonNextauf, um zumStartArray- oderStartObject-Token für den Eintritt in ein solches Array oder Objekt zu gelangen.
- Verlassen einer Array- oder Objektstruktur
- Verwenden Sie Return, wenn Sie eine Struktur verlassen und zur übergeordneten Ebene zurückkehren möchten; diese Methode überspringt den verbleibenden Inhalt des Arrays oder Objekts, falls vorhanden, und wechselt zum übergeordneten Array oder Objekt zurück.
- Mit Depth können Sie die Tiefe der Ebene, in der sich der Iterator zurzeit befindet, ermitteln.
Lesen von JSON-Elementen
- Lesen von Schlüsseln
- Mit Key können Sie den Namen des aktuellen Elements lesen.
Keygibt den Namen des Elements an, das gerade vom Iterator gelesen wird; dabei kann es sich um den Namen eines Objekts, den Namen eines Arrays, den Index des Arrays oder den Namen des Schlüssels bei Schlüssel/Wertepaaren handeln.
- Lesen von Werten
- Um einen Wert zu lesen, müssen Sie dessen Typ kennen, da Sie die passende Eigenschaft diesem Typ entsprechend verwenden müssen. Um beispielsweise auf den Wert eines Elements mit Typ String zuzugreifen, müssen Sie die Eigenschaft AsString verwenden.
- Weitere Einzelheiten darüber, welche Eigenschaften Sie entsprechend dem Typ des Werts, der gerade gelesen wird, verwenden müssen, finden Sie in der Tabelle Werteigenschaften.
Siehe auch
- Framework der JSON-Objekte
- BSON
- System.JSON.Builders
- System.JSON.Writers
- System.JSON.Readers
- System.JSON.BSON