JSON-Framework der Reader und Writer

Aus RAD Studio
Wechseln zu: Navigation, Suche

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 oder TJsonWriter schreiben können, sollten Sie dazu die Klasse TJSONObjectBuilder 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 oder TJsonReader lesen können, sollten Sie dazu die Klasse TJSONIterator 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.

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 und EndArray 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 Wert null.
  • AddUndefined zum Hinzufügen eines Schlüssels mit undefinierten Wert.
  • AddMinKey zum Hinzufügen eines Schlüssels mit dem Wert MinKey.
  • AddMaxKey zum Hinzufügen eines Schlüssels mit dem Wert MaxKey.

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 eines Null-Werts.
  • AddUndefined zum Hinzufügen eines undefinierten Werts.
  • AddMinKey zum Hinzufügen eines MinKey-Werts.
  • AddMaxKey zum Hinzufügen eines MaxKey-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 und Find 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 mit StartArray- oder StartObject-Typen setzen. Rufen Sie Recurse erneut direkt nach dem Aufruf von Next auf, um zum StartArray- oder StartObject-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

Codebeispiele