Wenn Sie jemals eine Website gebaut, eine API aufgerufen oder in eine package.json-Datei geschaut haben, sind Sie bereits auf JSON gestoßen. Es steht für JavaScript Object Notation und ist im Grunde die universelle Sprache, mit der Apps miteinander kommunizieren. Lassen Sie sich vom „JavaScript" im Namen nicht täuschen — JSON funktioniert mit praktisch jeder Programmiersprache.

Lassen Sie uns das Ganze in einfacher Sprache aufschlüsseln, mit vielen Beispielen auf dem Weg.

Ein kurzer Blick in die Geschichte

JSON wurde von Douglas Crockford Anfang der 2000er Jahre entwickelt. Er wollte etwas Einfacheres als XML zum Austausch von Daten zwischen Browsern und Servern. Die Idee setzte sich schnell durch — JSON wurde 2013 offiziell als ECMA-404 und später 2017 als RFC 8259 standardisiert.

Heute verwenden über 90% aller Web-APIs JSON. Es geht nirgendwo hin.

Wie sieht JSON aus?

Hier ist ein einfaches Beispiel — ein JSON-Objekt, das eine Person beschreibt:

json

Ziemlich gut lesbar, oder? Genau darum geht es. Schauen wir uns die Regeln an, die das ermöglichen.

Die Syntaxregeln (ganz einfach, versprochen)

Datentypen: JSON bietet Ihnen sechs Bausteine: Strings (immer in doppelten Anführungszeichen), Zahlen, Booleans (true/false), null, Objekte und Arrays. Das war's — keine Datumsangaben, keine Funktionen, keine speziellen Typen.

Objekte: Das sind Ihre Schlüssel-Wert-Paare, eingeschlossen in geschweifte Klammern {}. Schlüssel müssen Strings in doppelten Anführungszeichen sein. Hier ist ein Beispiel für ein verschachteltes Objekt:

json

Arrays: Geordnete Listen in eckigen Klammern []. Sie können jeden Mix von Typen enthalten:

json

Ein Fallstrick: JSON erlaubt keine Kommas am Ende. {"name": "Sam",} wird Ihren Parser zum Absturz bringen. Das stolpert viele Leute, die von JavaScript kommen, wo Kommas am Ende völlig in Ordnung sind.

Warum Entwickler JSON lieben

Es gibt einige Gründe, warum JSON den Krieg der Datenformate gewonnen hat:

  • Es ist kinderleicht. Vergleichen Sie {"name": "Jo"} mit XMLs Jo. Weniger Tipparbeit, weniger Rauschen.
  • Jede Sprache unterstützt es. Python hat json.loads(), JavaScript hat JSON.parse(), Go hat encoding/json — Sie verstehen schon. Schauen Sie sich die MDN JSON-Dokumentation für die JavaScript-Seite an.
  • Es ist leichtgewichtig. JSON-Payloads sind typischerweise 30-50% kleiner als gleichwertiges XML. Das macht einen Unterschied, wenn Sie Millionen von API-Antworten pro Tag versenden.
  • Es passt natürlich zu Code. Ein JSON-Objekt sieht fast identisch aus wie ein Python-Dictionary, ein JavaScript-Objekt oder ein Ruby-Hash. Keine Übersetzungsschicht nötig.

Wo Sie JSON überall finden

  • Web-APIs: Rufen Sie fast jede REST-API auf und Sie bekommen JSON zurück. Probieren Sie es selbst — öffnen Sie Ihren Browser und besuchen Sie https://api.github.com/users/octocat. Das ist JSON.
  • Konfigurationsdateien: package.json für Node.js, tsconfig.json für TypeScript, settings.json für VS Code — JSON ist überall in Entwickler-Tools.
  • Datenbanken: MongoDB speichert Daten in BSON (binäres JSON). PostgreSQL hat native JSON-Spaltentypen. Sogar MySQL hat JSON-Unterstützung hinzugefügt.
  • Datenaustausch: Microservices kommunizieren fast immer über JSON via HTTP.

JSON vs XML — Die Kurzfassung

XML hat immer noch seinen Platz (mehr dazu in unserem XML-Artikel), aber für die meisten Webentwicklungsarbeiten gewinnt JSON bei Lesbarkeit, Dateigröße und Parsing-Geschwindigkeit. Der einzige Bereich, in dem XML glänzt? Dokumentenzentrierte Daten mit gemischtem Inhalt, Schemas und Transformationen.

Ihr JSON validieren

Selbst ein winziger Fehler — ein fehlendes Komma, ein zusätzliches Anführungszeichen oder ein überflüssiges Komma am Ende — lässt das JSON-Parsing komplett fehlschlagen. Es gibt kein „teilweises Parsen" bei JSON; es funktioniert entweder oder es funktioniert nicht. Deshalb sind Tools wie unser JSON Formatter und JSON Validator so praktisch. Fügen Sie Ihr JSON ein, und Sie sehen sofort, ob etwas nicht stimmt.

Häufige JSON-Fehler (und wie man sie behebt)

Nach Jahren der Arbeit mit JSON sind hier die Fehler, die ich immer wieder bei Entwicklern sehe:

1. Einfache Anführungszeichen statt doppelter. Das ist gültiges JavaScript, aber KEIN gültiges JSON:

json

2. Kommas am Ende. JavaScript erlaubt sie, JSON nicht:

json

3. Kommentare. JSON hat keine Kommentarsyntax. Wenn Sie Kommentare in Konfigurationsdateien brauchen, ziehen Sie JSONC (JSON with Comments, unterstützt von VS Code) in Betracht oder wechseln Sie zu YAML.

4. Schlüssel ohne Anführungszeichen. In JavaScript können Sie {name: "Sarah"} schreiben, aber in JSON muss jeder Schlüssel ein String in Anführungszeichen sein: {"name": "Sarah"}.

5. Verwendung von undefined. JavaScripts undefined existiert in JSON nicht. Verwenden Sie stattdessen null.

Mit JSON in verschiedenen Sprachen arbeiten

Eine der größten Stärken von JSON ist die universelle Sprachunterstützung. So sieht das Parsen und Serialisieren in beliebten Sprachen aus:

javascript
python

Bemerken Sie, wie ähnlich die APIs sind? parse/loads zum Lesen, stringify/dumps zum Schreiben. Die meisten Sprachen folgen diesem Muster.

JSON-Performance-Tipps

Wenn Sie mit großen JSON-Payloads arbeiten, wird die Performance wichtig. Hier sind einige praktische Tipps:

  • Minifizieren Sie für die Produktion. Das Entfernen von Leerzeichen aus JSON kann die Dateigröße um 10-30% reduzieren. Unser JSON Minifier erledigt das mit einem Klick.
  • Verwenden Sie Streaming-Parser für große Dateien. Wenn Ihre JSON-Datei Hunderte von Megabytes groß ist, laden Sie sie nicht komplett in den Speicher. Bibliotheken wie JSONStream (Node.js) oder ijson (Python) parsen inkrementell.
  • Vermeiden Sie tief verschachtelte Strukturen. Jede Verschachtelungsebene erhöht den Parsing-Overhead. Wenn Sie mehr als 4-5 Ebenen tief verschachteln, erwägen Sie, Ihr Datenmodell zu vereinfachen.
  • Ziehen Sie binäre Alternativen für Extremfälle in Betracht. Für Systeme mit sehr hohem Durchsatz können Formate wie MessagePack, BSON oder Protocol Buffers 2-5x kleinere Payloads und schnelleres Parsing bieten. Aber Sie verlieren die menschliche Lesbarkeit, das ist also ein Kompromiss.

JSON im realen API-Design

Schauen wir uns an, wie echte APIs ihre JSON-Antworten strukturieren. Hier ist ein gängiges Muster für paginierte API-Antworten:

json

Und hier ist ein gängiges Fehlerantwort-Muster:

json

Diese Muster sind so verbreitet, dass Sie sie in fast jeder gut gestalteten REST-API finden. Konventionen wie diese zu befolgen, macht Ihre API für andere Entwickler leichter verständlich.

JSON-Kurzreferenz

Hier ist ein Spickzettel mit allem, was Sie in ein JSON-Dokument packen können:

TypBeispielHinweise
String"hello"Muss doppelte Anführungszeichen verwenden
Number42, 3.14, -1, 2.5e10Keine führenden Nullen, kein Hex
Booleantrue, falseNur Kleinbuchstaben
NullnullNur Kleinbuchstaben
Object{"key": "value"}Schlüssel müssen Strings in Anführungszeichen sein
Array[1, 2, 3]Kann Typen mischen

Probieren Sie es selbst aus

Bereit, dieses Wissen in die Praxis umzusetzen? Hier sind die Tools, die Sie als Lesezeichen speichern sollten:

  • JSON Formatter — Fügen Sie unordentliches JSON ein und erhalten Sie es schön formatiert mit korrekter Einrückung.
  • JSON Validator — Prüfen Sie schnell, ob Ihr JSON syntaktisch korrekt ist, und erhalten Sie klare Fehlermeldungen, wenn nicht.
  • JSON Minifier — Entfernen Sie Leerzeichen aus Ihrem JSON für Produktions-Payloads.

JSON mag auf den ersten Blick einfach erscheinen, aber das Beherrschen seiner Eigenheiten und Best Practices wird Ihnen unzählige Stunden beim Debuggen ersparen. Jetzt gehen Sie los und bauen Sie etwas Großartiges!