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:
{ "userId": 101, "role": "admin" }[ "production", "staging", "dev" ]"Unicode-Text in doppelten Anführungszeichen"42, 3.14159, -17, 1.2e5true, falsenull3. 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.