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
TJSONObjectBuilder
ist ein Wrapper der Klasse TJsonWriter, die die Logik für die Serialisierung der JSON-Daten bereitstellt.
- Obwohl Sie JSON-Objekte mit den Klassen
TJSONObjectBuilder
oderTJsonWriter
schreiben können, sollten Sie dazu die KlasseTJSONObjectBuilder
verwenden, 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
TJSONIterator
ist ein Wrapper der Klasse TJsonReader, mit der Sie JSON-Format serialisierte Daten lesen können.
- Obwohl Sie JSON-Daten mit den Klassen
TJSONIterator
oderTJsonReader
lesen können, sollten Sie dazu die KlasseTJSONIterator
verwenden, 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
TParentCollection
repräsentiert die übergeordnete Struktur; diese Klasse wird in Methoden wie z. B.EndObject
undEndArray
zurü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:
AddNull
zum Hinzufügen eines Schlüssels mit dem Wertnull
.AddUndefined
zum Hinzufügen eines Schlüssels mitundefinierten
Wert.AddMinKey
zum Hinzufügen eines Schlüssels mit dem WertMinKey
.AddMaxKey
zum 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:
AddNull
zum Hinzufügen einesNull
-Werts.AddUndefined
zum Hinzufügen einesundefinierten
Werts.AddMinKey
zum Hinzufügen einesMinKey
-Werts.AddMaxKey
zum 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
Rewind
undFind
lö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
Next
iterieren 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 SieRecurse
erneut direkt nach dem Aufruf vonNext
auf, 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.
Key
gibt 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