JSON (JavaScript object notation)

Die JavaScript Object Notation (JSON) ist ein kompaktes Format zum Austausch von Daten, welches von Douglas Crockford definiert wurde. Die Basis bildet dabei eine Teilmenge der JavaScript Programmiersprache - konkret die JavaScript-Notation für Objektliterale - gemäß des ECMA-262 Standards (Dritte Edition, 1999). Trotzdem handelt es sich bei JSON um eine Vorgehensweise, die Daten sprachunabhängig auf einfache Weise strukturiert und die sich inzwischen für viele weitere Programmiersprachen wie Java, Programmiersprache C, C++ u.v.a. durchgesetzt hat.


Damit kann JSON verwendet werden, um Daten zwischen Programmen auszutauschen, die in verschiedenen Programmiersprachen implementiert wurden. Man spricht in diesem Zusammenhang auch von der Serialisierung von Daten. Bei JSON handelt es sich um ein von Mensch und Maschine gleichermaßen zu lesendes Textformat. Der große Vorteil von JSON liegt sowohl in der einfachen Handhabung wie auch Implementierung.

Die Elemente von JSON

JSON unterscheidet Elemente wie Objekte, Arrays, Strings, Zahlen, Boolesche Werte (true und false) sowie den Spezialwert 0. Vor oder hinter jedem Element können Leerzeichen, Tabulatoren, Carriage Return und Newline-Zeichen, in Summe sogenannte Whitespaces, stehen. Die ausführliche Verwendung von Whitespaces ist hinsichtlich der Aspekte Übertragungs- oder Speicherkosten abzuprüfen.

Ein untergeordneter Container (eine Zusammenfassung unterschiedlicher Daten) mit Schlüssel/Wert-Paaren definiert ein JSON-Objekt. Ein Wert kann dabei ein beliebiger JSON-Wert sein, auch ein Array oder Objekt. Die Verschachtelungstiefe von JSON-Objekten kann beliebig tief sein; im Allgemeinen ist es aber effektiver, diese relativ flach zu halten. Der Aufbau der JSON-Syntax ist sehr einfach gehalten, so dass die meisten Programmiersprachen ein Feature besitzen, das JSON-Objekte einfach abbildet. Dies kann ein Objekt, Struct, Record, Dictionary, eine Hashtabelle, eine Liste mit Eigenschaften oder ein assoziatives Array sein.

Das Konzept von JSON

Beispiel für JSON

Beispiel für JSON

Der eigentliche Grundgedanke von JSON ist, dass diese Zeichenfolgen (Objektliterale) sehr einfach wieder in JavaScript-Arrays oder -Objekte zurück transformiert werden können. Da JSON selbst gültigen Java-Script-Code repräsentiert, kann die Zeichenfolge direkt ausgeführt und somit in ein JavaScript-Objekt überführt werden. Wird die Zeichenfolge jedoch mit der in JavaScript vordefinierten eval()-Funktion transformiert, so kann beliebiger JavaScript-Code ausgeführt werden, und somit auch unsicherer Code in die eigentliche Applikation eingestreut werden. Diese Gefahr lässt sich jedoch vermeiden, wenn man die JSON.parse-Methode zur Transformation (json2.js) statt eval() verwendet. Alternativ lässt sich auch für die Verwendung von JSON in JavaScript ein Framework wie mootools einsetzen, welches saubere Funktionen zur Analyse von Datenstrukturen ( Parsen) und zur Wandlung von Objekten nach JSON bietet.

Der häufig herangeführte Vergleich von XML und JSON ist unzulässig, da es sich bei XML um eine komfortable Auszeichnungssprache mit erheblich mehr Anwendungen handelt als bei dem doch recht einfachen Datenaustauschformat JSON. Beiden gemeinsam ist, dass sowohl XML als auch JSON den Austausch von binären Daten nicht unterstützen. Hier bietet sich die kompaktere Variante von JSON nämlich BISON (Binary Interchange Standard Object Notation) an. Ein weiteres Verfahren ist BERT, dass auf Erlang basiert.

Eine weitere Technologie ist YAML (Yet another Markup Language); auch eine Auszeichnungssprache zur Serialisierung von Daten. Diese integriert JSON vollständig, so dass ein JSON-Format immer auch ein valides YAML-Format darstellt.

http://www.json.org

http://www.json.org/json2.js

http://www.mootools.net

Informationen zum Artikel
Deutsch:
Englisch: JavaScript object notation - JSON
Veröffentlicht: 31.10.2013
Wörter: 530
Tags: #Java
Links: Ant (another neat tool), Array, Aspekt, Auszeichnungssprache, BERT (bit error rate test)