JSON-Daten
Dieser Abschnitt enthält eine kurze Beschreibung zur Struktur von JSON-Daten. JSON-Daten werden normalerweise in einem JSON- (Instanz-)Dokument gespeichert, können aber auch als JSON-Datenfragment in einem Dokument eines anderen Typs gespeichert sein. Ein JSON-Datenfragment oder -Dokument ist eine JSON-Datenstruktur, die einer der unten beschriebenen Datenstrukturen entspricht.
XMLSpy unterstützt zusätzlich JSON5, eine Erweiterung von JSON, die zusätlich einige minimale ECMScript 5-Erweiterungen enthält. Nähere Informationen dazu finden Sie unter json5.org.
JSON-Objekte und Arrays
Ein JSON-Dokument (Dateierweiterung lautet normalerweise .json) besteht aus den folgenden grundlegenden Datenstrukturen:
Objekt
Ein Objekt steht innerhalb von geschweiften Klammern. Es handelt sich hierbei um eine nicht geordnete Sammlung von null oder mehr Schlüssel:Wert-Paaren. Diese Schlüssel:Wert-Paare sind die Eigenschaften des Objekts. Der Schlüssel muss immer ein String sein und daher immer in Anführungszeichen stehen. Der Schlüssel (auch Name der Eigenschaft genannt) wird durch einen Doppelpunkt von seinem Wert getrennt. Ein Eigenschaftswert kann jeden beliebigen JSON-Datentyp haben (siehe Liste unten). Eine Eigenschaft wird durch ein Komma von der nächsten getrennt. Das Codefragment unten ist ein Beispiel für ein Objekt mit drei Eigenschaften (alle mit Werten vom atomaren Typ):
{
"emailtype": "home",
"emailaddress": "contact01.home@altova.com",
"citycode": 22
}
Array
Ein Array steht innerhalb von eckigen Klammern und ist eine kommagetrennte, geordnete Liste bestehend aus null oder mehr Elementen. Bei diesen Elementen kann es sich um jeden beliebigen JSON-Datentyp (siehe Liste unten) handeln.
Das unten gezeigte Array besteht aus zwei Objekten (von denen jedes innerhalb von geschweiften Klammern steht). Das Array selbst steht innerhalb von eckigen Klammern.
[ { "emailtype": "home", "emailaddress": "contact01.office@altova.com", "citycode": 22 }, "emailtype": "office", "emailaddress": "contact01.office@altova.com", "citycode": 22 } ]
|
Im Codefragment unten sehen Sie ein Objekt mit drei Schlüssel:Wert -Paaren. Jeder Wert ist ein Array, das eine Tuple(sequenz) enthält. (Ein Tuple kann als eindimensionales Array betrachtet werden.) Bei den drei Elementen in den einzelnen Tuples handelt es sich um atomare Typen.
{ "x": [ 1, 2, "abc" ], "y": [ 3, 4, "def" ], "z": [ 5, 6, "ghi" ] }
|
JSON-Datentypen
Objekteigenschaftswerte und Array-Elemente können die folgenden Typen haben:
•String (muss innerhalb von Anführungszeichen stehen). Für einen String kann zusätzlich ein Format wie z.B. date-time oder email definiert sein.
•Zahl: Eine Zahl mit Nachkommastellen; dazu gehören auch Ganzzahlen
•Ganzzahl: Eine Zahl ohne Nachkommastellen; eine Teilmenge des Typs Zahl
•Boolesch (true/false, steht nicht innerhalb von Anführungszeichen)
•Objekt: Ermöglicht die Verschachtelung von Daten, wenn es innerhalb eines anderen Objekts verwendet wird.
•Array: Bietet die Möglichkeit, komplexere als in Objekten zulässige Strukturen zu erstellen
•Null (nicht in Anführungszeichen eingeschlossen)
Beispiel für JSON-Daten
Hier sehen Sie ein Beispiel für ein JSON-Datenfragment. Beachten Sie, dass das Dokument aus Objekten und Arrays besteht. Beachten Sie außerdem den Datentyp von Schlüsselwerten; String-Werte stehen innerhalb von Anführungszeichen, andere Typen werden grün angezeigt.
{
"first": "Jason",
"last": "Jones"
"isManager": true,
"age": 35,
"address": {
"street": "Jason Avenue",
"city": "Jasonville",
"state": "JS",
"postcode": "JS12 ON34"
},
"phone": [
{
"type": "home",
"number": "12 3456-7890"
},
{
"type": "office",
"number": "789 012-34567"
}
],
"children": [],
"partner": null
}
Einige Unterschiede zwischen JSON5 und JSON
JSON5 ist eine streng eingegrenzte Untermenge von JavaScript, enthält keine neuen JSON-Datentypen und lässt sich mit jedem bestehenden JSON-Content verwenden. Es bestehen die folgenden Unterschiede zu JSON:
•JSON5 unterstützt Kommentare. Kommentare stehen innerhalb von: // comment // oder /* comment */.
•Die Schlüssel von Schlüssel:Wert-Paaren müssen in JSON5 nicht in von Anführungszeichen gesetzt werden.
•Strings können in JSON5 über mehrere Zeilen reichen.
•JSON5-Dokumente können anhand von JSON-Schemas, nicht aber anhand von Avro-Schemas validiert werden.