JSON erklärt: Aufbau, Datentypen und Fallstricke des Formats

Wenn zwei Computer im Web miteinander reden, sprechen sie heute fast immer JSON. Egal ob eine Wetter-API, eine Bezahlschnittstelle oder die Kommunikation zwischen Frontend und Backend deiner eigenen App – das Datenformat dahinter ist meist JSON. Es ist so allgegenwärtig, dass man es leicht für selbstverständlich hält. Wer aber die Regeln und Tücken kennt, spart sich viele Stunden Fehlersuche. Dieser Artikel erklärt JSON von Grund auf.

Was JSON ist und woher es kommt

JSON steht für JavaScript Object Notation. Douglas Crockford hat das Format Anfang der 2000er populär gemacht – als leichtgewichtige Alternative zum damals dominierenden XML. Die Syntax leitet sich von JavaScript-Objektliteralen ab, doch JSON ist heute ein sprachunabhängiger Standard (formalisiert in RFC 8259 und ECMA-404). Praktisch jede Programmiersprache kann JSON lesen und schreiben.

Der Reiz von JSON liegt in seiner Schlichtheit: Es ist für Menschen lesbar, für Maschinen einfach zu parsen und enthält keinen überflüssigen Ballast. Genau das machte es zum Standard für Web-APIs.

Die Bausteine: Sechs Datentypen

JSON kennt eine überschaubare Menge an Typen, und das ist eine Stärke. Alles, was du in JSON ausdrückst, setzt sich aus diesen Bausteinen zusammen:

Es gibt bewusst keinen eigenen Typ für Datum, Geld oder Binärdaten. Solche Werte werden als String oder Zahl kodiert – mehr dazu weiter unten.

Die strengen Syntaxregeln

JSON ist erbarmungslos streng, und genau das macht es zuverlässig parsbar. Die häufigsten Fehlerquellen:

Ein einziges fehlendes Komma oder eine vergessene Klammer macht ein ganzes Dokument unlesbar. Bei der Fehlersuche hilft ein JSON-Formatter aus unserem Webtools-Bereich: Er zeigt dir die Stelle, an der das Parsen scheitert, und macht verschachtelte Strukturen durch Einrückung lesbar.

Parsen und Serialisieren

Zwei Operationen begegnen dir ständig. Serialisieren heißt, ein Objekt im Speicher in einen JSON-String zu verwandeln (in JavaScript JSON.stringify()). Parsen ist der umgekehrte Weg: aus einem String wieder ein Objekt machen (JSON.parse()). In Python heißen die Pendants json.dumps() und json.loads(), in PHP json_encode() und json_decode().

Wichtig: Parse niemals fremdes JSON ungeprüft. Fängt dein Code den Fall ungültiger Eingaben nicht ab, fliegt eine Exception und im schlimmsten Fall stürzt die Anwendung ab. Umschließe das Parsen immer mit Fehlerbehandlung und validiere die Struktur, bevor du dich auf einzelne Felder verlässt.

Tücken bei Zahlen und Datumsangaben

Hier lauern die subtilsten Fehler. JSON-Zahlen folgen dem Gleitkomma-Standard IEEE 754, wie ihn JavaScript verwendet. Das bedeutet: sehr große Ganzzahlen verlieren an Präzision. Eine 64-Bit-ID aus der Datenbank kann beim Durchlaufen durch JavaScript verfälscht werden, weil dort Zahlen über etwa 9 Billiarden nicht mehr exakt darstellbar sind. Die Lösung: Solche IDs als String übertragen, nicht als Number.

Ähnliches gilt für Geldbeträge. Wegen der Ungenauigkeit von Gleitkommazahlen solltest du Beträge entweder in der kleinsten Einheit als Ganzzahl (Cent statt Euro) oder als String führen, niemals als 19.99-Float, mit dem du rechnest.

Für Datum und Zeit gibt es keinen JSON-Typ. Setze auf den ISO-8601-Standard als String: "2025-01-22T14:30:00Z". Das Z am Ende steht für UTC und vermeidet Zeitzonen-Verwirrung. Lokale Zeitstempel ohne Zeitzone sind eine endlose Fehlerquelle.

Struktur erzwingen mit JSON Schema

JSON selbst sagt nichts darüber aus, wie ein gültiges Dokument auszusehen hat. Genau hier kommt JSON Schema ins Spiel: eine eigene, in JSON geschriebene Sprache, mit der du festlegst, welche Felder erforderlich sind, welche Typen sie haben und welche Wertebereiche erlaubt sind.

Ein Schema beschreibt zum Beispiel, dass ein Nutzerobjekt zwingend ein Feld email vom Typ String mit E-Mail-Format und ein Feld alter vom Typ Integer ≥ 0 enthalten muss. Wird die API mit fehlerhaften Daten gefüttert, lehnt die Validierung sie ab, bevor sie Schaden anrichten. In typsicheren Codebasen leisten Bibliotheken wie Zod denselben Dienst direkt im Code und leiten daraus sogar die Typen ab.

JSON gegen XML

Vor JSON regierte XML den Datenaustausch. Der Vergleich erklärt, warum sich JSON durchgesetzt hat:

XML hat dennoch seine Nischen: Wo Namespaces, Attribute, Schemavalidierung per XSD oder Dokumenten-Transformationen per XSLT gefragt sind – etwa im behördlichen oder industriellen Datenaustausch – ist XML weiterhin verbreitet. Für Web-APIs aber ist JSON der klare Standard.

Praktische Empfehlungen

Wie diese Daten dann sauber über HTTP ausgeliefert werden, liest du in unserem Leitfaden zu REST-API-Design.

Häufige Fragen

Ist JSON ein Teil von JavaScript?

Nein. Die Syntax stammt zwar von JavaScript-Objektliteralen ab, aber JSON ist ein eigenständiger, sprachunabhängiger Standard. Jede gängige Sprache kann damit umgehen. Zudem ist nicht jedes JavaScript-Objekt gültiges JSON – Funktionen, undefined oder Kommentare sind in JSON nicht erlaubt.

Wie kommentiere ich JSON?

Reines JSON erlaubt keine Kommentare. Für Konfigurationsdateien nutzen viele Tools die Varianten JSONC oder JSON5, die Kommentare zulassen. In einer API solltest du auf Kommentare verzichten und stattdessen sprechende Feldnamen und eine separate Dokumentation verwenden.

Warum wird meine große ID falsch dargestellt?

Weil JavaScript Zahlen als 64-Bit-Gleitkommawerte behandelt und Ganzzahlen über etwa 9 Billiarden nicht mehr exakt abbilden kann. Übertrage große IDs als String, dann bleibt die Präzision erhalten.

Wie validiere ich JSON schnell?

Für eine schnelle Prüfung der Syntax nutzt du einen Online-JSON-Formatter. Für die inhaltliche Validierung gegen erwartete Felder und Typen setzt du JSON Schema oder eine Validierungsbibliothek in deiner Programmiersprache ein.