Definition: das Datenaustauschformat JavaScript Object Notation Was ist JSON?
Bei JSON (JavaScript Object Notation) handelt es sich um ein Textformat zum Austausch von Daten. Es ist einfach zu erlernen und zu lesen. JSON basiert auf der JavaScript-Sprache. Das Format konkurriert beim Austausch strukturierter Daten mit XML, besitzt aber wesentlich weniger Möglichkeiten.
Anbieter zum Thema

Die Abkürzung JSON steht für JavaScript Object Notation und bezeichnet ein normiertes Textformat, mit dem sich strukturierte Daten austauschen lassen. Aufgrund seiner Einfachheit und Schlankheit ist es leicht zu erlernen und gut zu lesen. JSON basiert zwar auf JavaScript, ist aber unabhängig von der Programmiersprache einsetzbar.
Geeignete Parser existieren für fast alle gängigen Programmiersprachen wie C++, Java, Python oder Lisp. Ursprünglich spezifizierte Douglas Crockford JavaScript Object Notation. Aktuell existieren mit RFC 8259 und ECMA-404 zwei verschiedene Standards. Im Internet ist JSON weit verbreitet und kommt als Alternative zu XML (Extensible Markup Language) zum Einsatz. Im Gegensatz zu XML handelt es sich bei JSON nicht um eine vollständige Auszeichnungssprache. JavaScript Object Notation ist ein gegenüber XML vereinfachtes Datenaustauschformtat.
Verwendung von JSON
Grundsätzlich ist JSON überall dort nutzbar, wo Daten übertragen oder ausgetauscht werden müssen. JSON lässt sich in dieser Hinsicht mit XML vergleichen, ist aber wesentlich schlanker und einfacher. Aufgrund der ressourcenschonenden Verarbeitung der JSON-Daten sind besonders Desktop- und Web-Anwendungen sowie mobile Apps für das JSON-Format geeignet. Beim Austausch der Daten zwischen Client und Server sind oft Ajax, WebSockets oder JavaScript parallel im Einsatz.
Für die Verarbeitung von JSON wird eine geeigneter Parser benötigt. Da für die Darstellung von Webserver-Daten in einem Browser häufig JavaScript verwendet wird, ist die Nutzung des JSON-Datenformats aufgrund sich sehr ähnelnder Sprachelemente sehr beliebt. Denn für die Programmierer ergibt sich bei der Verwendung von JSON der Vorteil, dass bis auf wenige Ausnahmen die JSON-Objekte mit dem JavaScript-Code fast identisch sind. Es muss daher keine komplizierte neue Syntax gelernt werden.
Die verschiedenen Elemente von JavaScript Object Notation und ihre Syntax
JavaScript Object Notation unterscheidet verschiedene Elemente. Diese sind Objekte, Arrays, Zahlen, Boolesche Werte oder Strings. Zentrale Bestandteile sind die sogenannten "Schlüssel : Wert"-Paare und Satzzeichen wie runde und geschweifte Klammern, Doppelpunkte und Semikolon. Jedes Objekt hat eine definierte Eigenschaft und bekommt einen Wert zugeordnet. Mathematische Notationen, Algorithmen oder andere Elemente typischer Programmiersprachen besitzt JSON nicht. Die Verschachtelung von JSON-Objekten lässt sich beliebig tief gestalten. Für eine einfache Lesbarkeit des Datenformats ist jedoch auf eine flache Hierarchie der JSON-Objekte zu achten. Die Zeichenkodierung von JSON ist UTF-8 oder alternativ UTF-16 beziehungsweise UTF-32.
Die Datentypen im Detail sind:
- der Nullwert mit Schlüsselwort null
- der Boolesche Wert mit true oder false
- die Zahl als Folge von Ziffern
- Zeichenketten gekennzeichnet durch Anführungszeichen
Weitere Elemente sind:
- Arrays beginnend und endend mit eckigen Klammern
- Objekte beginnend und endend mit geschweiften Klammern
- "Schlüssel : Wert"-Paare jeweils getrennt durch den Doppelpunkt. Die Schlüssel sollten innerhalb des Dokuments jeweils eindeutig sein. Beim Schlüssel handelt es sich um eine Zeichenkette und beim Wert um einen Datentyp
Gegenüberstellung von JavaScript Object Notation und XML
Obwohl JSON und XML im Bereich der Datenübertragung miteinander konkurrieren, existieren gravierende Unterschiede der beiden Formate. Je nach Anwendungsbereich eignen sich XML und JSON unterschiedlich gut und besitzen spezifische Vor- und Nachteile. XML ist eine vollständige Auszeichnungssprache, JSON hingegen lediglich eine Syntax für die Darstellung bereits deklarierter Objekte. Sollen Daten in fest definierten Strukturen übertragen werden, ist JavaScript Object Notation eine gute Wahl, da nur wenig Overhead erzeugt wird.
XML ist wesentlich flexibler einsetzbar und erlaubt komplexere Objekte und sich unterscheidende Strukturen. Die Syntax von JSON ist einfacher gestaltet und besser les- und erlernbar. Eine Stärke von JSON ist, dass bis auf wenige Ausnahmen die Syntax aus validem JavaScript-Code besteht. Innerhalb von JavaScript kann JSON mit der eval()-Funktion in JavaScript-Objekte umgewandelt werden. Dadurch entsteht ein potentielles Risiko für die Ausführung von ungewolltem Code, das sich durch den Einsatz eines Parsers minimieren lässt.
Für den Austausch von Daten im Internet ist XML weiter verbreiten. In Bereichen, in denen keine komplexen Auszeichnungen benötigt werden, ist JSON eine beliebte und häufig genutzte Alternative. Da sowohl JSON als auch XML keine Binärdatentypen unterstützen und zeichenweise zu interpretieren sind, sind sie beide weniger gut für die Repräsentation von Binärdatenmengen geeignet.
JSON und Aspekte der Sicherheit
Wie bereits im vorherigen Kapitel kurz beschrieben, können JSON-Dateiformate von JavaScript ausgeführt werden. Mit Hilfe von Methoden wie Cross-Site-Scripting oder Command-Injection können Angreifer JavaScript-Attacken auf einem Webclient ausführen. Hierfür müssen Hacker den Java-Script-Code in die JSON-Zeichenfolge einfügen. Webserver können beliebige Inhalte mit den manipulierten JSON-Objekten an den Webbrowser übermitteln, die dieser ausführt. Durch geeignete Schutzmaßnahme lässt sich der Missbrauch von JSON verhindern.
Die Vorteile von JavaScript Object Notation
Für fast jede gängige Programmiersprache existieren geeignete Parser, mit denen sich JSON-Objekte verstehen und verarbeiten lassen. Dadurch ist JSON sehr flexibel einsetzbar und weit verbreitet. Die in JavaScript Object Notation standardisierte Struktur sorgt dafür, dass genau festgelegt ist, wie die Daten repräsentiert werden. Für die Entwickler ist es dadurch einfacher JSON-Datenobjekte zu erstellen und auszuwerten.
Auch die Interoperabilität mit den unterschiedlichen Anwendungsbereichen und Programmiertechnologien steigt. Dank der einfachen Syntax sind JSON-Daten für Menschen einfach zu lesen und zu verstehen. Bei der Verarbeitung durch Rechner werden nur wenig Ressourcen benötigt. Da die JSON-Objekte ohne umfangreiche Deklarationen oder Beschreibungen auskommen und immer gleiche Grundstruktur besitzen, minimiert sich der Overhead für den Austausch von Daten.
JSON und YAML
YAML (Yet Another Markup Language) ist wie JSON eine vereinfachte Auszeichnungssprache für die Übertragung von Datenobjekten und ist noch stärker auf die leichte Lesbarkeit für den Menschen fokussiert. JSON ist eine Untermenge von YAML und jedes JSON-Dokument ist in der YAML-Version 1.2 gleichzeitig ein gültiges YAML-Dokument. Beide Formate bieten sehr ähnliche Funktionalitäten. Während YAML bevorzugt mit Einrückungen für die hierarchische Struktur der Dokumente arbeitet, verwendet JSON Klammern für die Strukturierung. Die Klammern werden optional auch von YAML verstanden.
:quality(80)/images.vogel.de/vogelonline/bdb/1229600/1229678/original.jpg)
Definition: Representational State Transfer (REST) Application Programming Interface (API)
Was ist eine REST API?

Zum Special: Definitionen rund um Cloud Computing
(ID:45199049)