BNI EIP-508-105-R015-007
JSON-Format
Übersicht
Die JavaScript Object Notation, kurz JSON, ist ein kompaktes Datenformat in einer einfach lesbaren Textform
zum Zweck des Datenaustauschs zwischen Anwendungen.
JSON ist unabhängig von der Programmiersprache.
Parser existieren in praktisch allen verbreiteten Sprachen.
JSON wird zur Übertragung und zum Speichern von strukturierten Daten eingesetzt; es dient als Datenformat bei
der Serialisierung. Insbesondere bei Webanwendungen und mobilen Apps wird es in Verbindung mit JavaScript,
Ajax oder WebSockets zum Transfer von Daten zwischen dem Client und dem Server häufig genutzt.
Datenstruktur und Formatdefinition
Die Daten können beliebig verschachtelt werden, beispielsweise ist ein Array von Objekten möglich. Als Zeichen-
codierung benutzt JSON standardmäßig UTF-8.
JSON kennt folgende Datentypen:
▪
Nullwert
wird durch das Schlüsselwort null dargestellt.
▪
Boolescher Wert
wird durch die Schlüsselwörter true und false dargestellt. Dies sind keine Zeichenketten. Sie werden da-
her, wie null, nicht in Anführungszeichen gesetzt.
▪
Zahl
ist eine Folge der Ziffern 0–9. Diese Folge kann durch ein negatives Vorzeichen - eingeleitet und von
einem Dezimalpunkt . unterbrochen sein. Die Zahl kann durch die Angabe eines Exponenten e oder E er-
gänzt werden, dem ein Vorzeichen + oder - und eine Folge der Ziffern 0–9 folgt.
▪
Zeichenkette
beginnt und endet mit doppelten geraden Anführungszeichen ("). Sie kann Unicode-Zeichen und Escape-
Sequenzen enthalten.
▪
Array
beginnt mit [ und endet mit ]. Es enthält eine durch Kommata geteilte, geordnete Liste von Werten glei-
chen oder verschiedenen Typs. Leere Arrays sind zulässig.
▪
Objekt
beginnt mit { und endet mit }. Es enthält eine durch Kommata geteilte, ungeordnete Liste von Eigenschaf-
ten. Objekte ohne Eigenschaften („leere Objekte") sind zulässig.
Eigenschaft
besteht aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (Schlüssel:Wert). Jeder
Schlüssel darf in einem Objekt nur einmal enthalten sein.
Der Schlüssel ist eine Zeichenkette.
Der Wert ist ein Objekt, ein Array, eine Zeichenkette, eine Zahl oder einer der Ausdrücke true, false
oder null.
Nicht signifikante Leerraum-Zeichen sind verwendbar.
Einschränkungen
JSON unterstützt nicht alle von JavaScript unterstützten Datentypen. Daher werden bei der Serialisierung
▪
NaN, Infinity und -Infinity zu null serialisiert,
▪
Date-Objekte als String in das ISO-8601-Format konvertiert, und
▪
Function-, RegExp- und Error-Objekte verworfen.
46