Was ist JSON? Ist es besser als XML?

Was ist JSON? Ist es besser als XML?

Wambui Mugo
Wambui Mugo

Zuletzt aktualisiert am

Mit den Worten von Douglas Crockford, einem der JSON-Entwickler: „JSON (JavaScript Object Notation) ist ein schlankes Datenaustauschformat. Es ist für Menschen leicht zu lesen und zu schreiben. Maschinen können es leicht parsen und erzeugen.“

Obwohl JSON ursprünglich aus JavaScript stammt, wird es von den wichtigsten Programmiersprachen nativ oder über Bibliotheken unterstützt. JSON ist im Web inzwischen sehr beliebt. Heute nutzen es fast alle öffentlichen und einige private Webdienste. Am häufigsten wird es für den Informationsaustausch zwischen Webservern und Clients eingesetzt. Aufgrund seiner Beliebtheit unterstützen viele Datenbanken JSON, darunter MySQL, PostgreSQL, MongoDB und Neo4j.

Sehen wir uns nun die Struktur von JSON an, warum du es verwenden solltest, welche Vorteile es gegenüber XML hat, wo seine Grenzen liegen und wann es sinnvoll ist.

Aufbau einer JSON-Datei

Ohne zu tief in die Fachsprache einzusteigen: JSON-Daten werden in einfachen Textdateien mit einer Struktur aus Schlüssel-Wert-Paaren gespeichert. So bleibt der Code für Menschen lesbar und lässt sich leicht öffnen und untersuchen. Das macht JSON plattformübergreifend nutzbar, da jede Programmiersprache einfachen Text verarbeiten und lesen kann. Als textbasiertes Format ist es schlanker, wodurch sich Daten einfacher und schneller über das Web übertragen lassen. Für Webdienste, die viele Daten anzeigen und senden, ist JSON eine ideale Wahl.

Die wichtigste Alternative zu JSON ist XML. Es verwendet eine Tag-Struktur und ist dadurch etwas komplexer. XML wird hauptsächlich für den Datenaustausch genutzt, da jede Programmiersprache über einen XML-Parser verfügt. Zahlreiche Schemas können XML validieren. Das macht es ideal für den E-Commerce, etwa für Onlineshops, Bankgeschäfte, die Integration industrieller Systeme und mehr.

Dabei ist wichtig zu wissen, dass XML keine Programmiersprache, sondern eine Auszeichnungssprache ist. Die Daten werden daher in Baumstrukturen gespeichert. Das führt zu größeren Datenmengen und einer langsameren Übertragung.

Wenn du XML in ein JavaScript-Objekt umwandeln möchtest, musst du dich durch Hunderte Codezeilen arbeiten – individuelle Anpassungen noch nicht mitgerechnet. Um JSON in ein JavaScript-Objekt umzuwandeln, genügt dagegen eine einzige Codezeile.

Die gute Nachricht: Mit Filestar kannst du ganz einfach XML in JSON umwandeln und dir die Arbeit erleichtern. Genauso einfach kannst du auch JSON in XML umwandeln.

Warum JSON verwenden?

· Die JavaScript-Engine sorgt dafür, dass JSON schneller geparst wird. Zusammen mit seiner geringen Größe ermöglicht das eine schnellere Datenübertragung.

· Außerdem gibt es in JSON keine überflüssigen oder leeren Daten-Tags. Dadurch bleibt es einfach, gut lesbar und kompakt. Es unterstützt jedoch Arrays, boolesche Werte, Zahlen, null, Zeichenketten und primitive Objekte.

· JSON unterstützt sowohl ASCII- als auch UTF-Kodierung.

· JSON ermöglicht stets ein sichereres Parsen – außer bei JSONP –, während XML anfällig für Angriffe ist.

· Die Kombination aus JSON und AJAX macht die Datenverarbeitung enorm schnell.

Grenzen von JSON

JSON bietet dir Flexibilität bei der Datenverarbeitung und funktioniert mit zahlreichen Programmiersprachen. Einige Nachteile dürfen wir aber nicht übersehen.

1. Es fehlt ein Schema, was zugleich Segen und Fluch ist. Einerseits kannst du Daten in jeder beliebigen Form darstellen. Andererseits entstehen dadurch sehr leicht versehentlich falsch strukturierte Daten.

2. Es ist nur ein Zahlentyp erlaubt: IEEE-754 mit doppelter Genauigkeit. Das klingt ziemlich technisch, bedeutet aber einfach, dass du die vielfältigen und differenzierten Zahlentypen vieler Programmiersprachen nicht nutzen kannst.

3. Außerdem kannst du Feldern, die zusätzliche Dokumentation benötigen, keine Kommentare hinzufügen. Das lässt Raum für Missverständnisse.

4. Ja, JSON ist weniger umfangreich als XML. Bei riesigen Datenmengen oder besonderen Anforderungen an den Datenaustausch solltest du aber besser ein effizienteres Datenformat verwenden.

Am besten geeignet:

Wenn du ein Programm schreibst, das mit einer mobilen App oder einem Browser kommuniziert, verwende JSON. XML wäre hier eine veraltete Wahl: Im Frontend gilt es als Warnsignal und kommt bei mobilen Entwicklern, die du gewinnen möchtest, nicht gut an.

Für die Kommunikation zwischen Servern kann JSON nützlich sein. Serialisierungsframeworks wie Apache Thrift und Avro eignen sich jedoch besser.

Obwohl JSON von allen Datenbanken unterstützt wird, gilt bei relationalen Datenbanken die Faustregel: Vermeide es nach Möglichkeit. Relationale Datenbanken arbeiten mit strukturierten Daten. Bei Abfragen innerhalb von JSON-Objekten können deshalb Leistungsprobleme auftreten.

Zusammenfassung

Kurz gesagt: JSON ist das De-facto-Format für die Datenübertragung zwischen Browsern, Webservern und mobilen Apps. Dank seiner Flexibilität und Einfachheit lässt es sich leicht lesen, verstehen und bearbeiten. Über Validierung und Semantik musst du dir bei JSON keine großen Gedanken machen.