Curious TechieDev Toolbox
Alle Leitfäden/Datenformate8 min read

Was ist JSON? Technischer Leitfaden zu RFC 8259

Datentypen, Syntaxregeln, AST-Validierung, Serialisierungsbesonderheiten und warum Trailing Commas scheitern.

Wichtigste Erkenntnisse
  • JSON ist ein textbasiertes Datenaustauschformat nach RFC 8259 und ECMA-404.
  • Unterstützt 6 Typen: String, Number, Boolean, Null, Objekt und Array.
  • Schlüssel müssen immer in doppelten Anführungszeichen ("key") stehen.
  • Nachgestellte Kommas (Trailing Commas) sind laut Standard strikt unzulässig.
  • Zahlen unterscheiden nicht zwischen Integers und Gleitkommawerten.

Moderne Webanwendungen, Cloud-Infrastrukturen und mobile Backends benötigen eine universelle digitale Sprache zum Austausch strukturierter Daten. Dieses universelle Format ist JSON (JavaScript Object Notation).

1. Einführung und Geschichte

JSON wurde in den frühen 2000er Jahren von Douglas Crockford als leichtgewichtige und saubere Alternative zur Schwerfälligkeit von XML etabliert. Obwohl an die Objektliterale von JavaScript angelehnt, ist JSON völlig sprachunabhängig und in den Standards RFC 8259 sowie ECMA-404 normiert.

2. Die 6 grundlegenden JSON-Datentypen

JSON definiert exakt sechs Datentypen. Jedes Dokument, das darüber hinausgehende Typen enthält, ist ungültig:

Objekt (Object):{ "userId": 101, "role": "admin" }
Array:[ "production", "staging", "dev" ]
Zeichenkette (String):"Unicode-Text in doppelten Anführungszeichen"
Zahl (Number):42, 3.14159, -17, 1.2e5
Boolescher Wert (Boolean):true, false
Null:null

3. Strikte Syntax- und Grammatikregeln

Im Gegensatz zu fehlertoleranten JavaScript-Laufzeitumgebungen erzwingen JSON-Parser eine strikte Syntax:

  • Doppelte Anführungszeichen zwingend: Objektschlüssel und Strings müssen in doppelten Anführungszeichen ("schluessel") stehen. Einfache Anführungszeichen ('schluessel') führen zum Abbruch.
  • Keine nachgestellten Kommas (Trailing Commas): Kommas dienen rein als Elementtrenner. Ein Komma nach dem letzten Element führt zu einem Syntaxfehler.
  • Keine Kommentare erlaubt: Standard-JSON gestattet keinerlei Kommentare mit // oder /* */.

4. Abstract Syntax Tree (AST) Parsing

Beim Aufruf von JSON.parse() wandelt ein deterministischer Tokenizer die Zeichenkette im Arbeitsspeicher in einen Abstrakten Syntaxbaum (AST) um. Der Parser prüft Klammerpaare und UTF-8-Surrogatpaare, bevor native Objekte erzeugt werden.

5. JSON im Vergleich zu XML und YAML

Während XML bei dokumentenbasierten Systemen mit Schema-Validierung (XSD) punktet und YAML bei DevOps-Konfigurationsdateien bevorzugt wird, bleibt JSON dank minimalem Overhead und nativer Browserunterstützung der unangefochtene Standard für performante HTTP-APIs.

6. Sicherheit und Best Practices

Verwenden Sie niemals eval() zum Parsen externer JSON-Daten. Nutzen Sie stattdessen stets das native JSON.parse(), um Risiken durch Codeinjektion zuverlässig auszuschließen.