JSON
JavaScript Object Notation – ein leichtgewichtiges Datenformat für den Austausch strukturierter Daten. Der De-facto-Standard für REST APIs und Konfigurationsdateien.
JSON ist das universelle Datenformat des modernen Internets. Nahezu jede API, jede Konfigurationsdatei und jeder Datenaustausch zwischen Systemen nutzt JSON. Was als JavaScript-Notation begann, ist heute sprachunabhängig und wird von praktisch jeder Programmiersprache unterstützt. JSON hat XML als dominantes Austauschformat abgelöst – dank seiner Einfachheit, Lesbarkeit und geringeren Dateigröße.
Was ist JSON?
JSON (JavaScript Object Notation) ist ein leichtgewichtiges, textbasiertes Datenformat zur Darstellung strukturierter Daten. JSON besteht aus zwei Strukturen: Objekte (Key-Value-Paare in geschweiften Klammern: {"name": "Max", "age": 30}) und Arrays (geordnete Listen in eckigen Klammern: [1, 2, 3]). Unterstützte Datentypen: String, Number, Boolean, null, Object und Array. JSON ist sprach- und plattformunabhängig – Parser existieren für JavaScript, Python, Java, C#, Go, Rust und alle anderen gängigen Sprachen. Der MIME-Type ist application/json.
Wie funktioniert JSON?
JSON wird als Text übertragen und von der Empfängerseite geparst: In JavaScript mit JSON.parse() (String zu Objekt) und JSON.stringify() (Objekt zu String). APIs senden JSON als Response-Body, Client-Anwendungen deserialisieren das JSON in lokale Datenstrukturen. JSON Schema ermöglicht die Validierung: Es definiert die erwartete Struktur, Datentypen und Einschränkungen. Streaming-JSON-Parser (wie JSONStream in Node.js) verarbeiten große JSON-Dateien effizient ohne alles in den Speicher zu laden. JSON5 und JSONC erweitern JSON um Kommentare und Trailing Commas für Konfigurationsdateien.
Praxisbeispiele
REST API Response: Eine Produkt-API liefert {"id": 42, "name": "Software", "price": 9999, "inStock": true} – strukturiert, typisiert und maschinenlesbar.
package.json: Node.js-Projekte definieren Abhängigkeiten, Scripts und Metadaten in einer JSON-Datei – das zentrale Konfigurationsformat des JavaScript-Ökosystems.
Konfiguration: tsconfig.json, .eslintrc.json, .prettierrc – Tools im JavaScript-Ökosystem nutzen JSON durchgängig für Konfiguration.
Datenbank: MongoDB speichert Dokumente als BSON (Binary JSON), das JSON um Datentypen wie Date und Binary erweitert.
Typische Anwendungsfälle
API-Kommunikation: Der Standard-Datenformat für REST und GraphQL APIs
Konfiguration: Settings, Presets und Metadaten für Anwendungen und Tools
Datenspeicherung: NoSQL-Datenbanken (MongoDB, CouchDB) nutzen JSON-ähnliche Dokumente
Logging: Strukturierte Logs im JSON-Format für effizientes Parsing und Analyse
Data Exchange: Import/Export von Daten zwischen verschiedenen Systemen
Vorteile und Nachteile
Vorteile
- Einfach: Leicht zu lesen, zu schreiben und zu debuggen – auch für Nicht-Programmierer verständlich
- Kompakt: Deutlich weniger Overhead als XML (keine schließenden Tags, keine Attribute)
- Universell: Unterstützt von allen Programmiersprachen und Plattformen
- Native JavaScript-Unterstützung: JSON.parse() und JSON.stringify() sind in jedem Browser eingebaut
- Typisiert: Unterscheidet String, Number, Boolean, null, Array und Object
Nachteile
- Keine Kommentare: Standard-JSON unterstützt keine Kommentare (JSONC und JSON5 als Workaround)
- Keine Referenzen: JSON kann keine zirkulären Referenzen abbilden
- Kein Datum-Typ: Daten werden als Strings übertragen und müssen manuell geparsed werden
- Kein Schema erzwungen: Ohne JSON Schema ist die Struktur nicht garantiert
- Kein Streaming: Standard-JSON muss vollständig geparst werden, bevor Daten verfügbar sind
Häufig gestellte Fragen zu JSON
JSON oder XML?
Was ist JSON Schema?
Wie gehe ich mit großen JSON-Dateien um?
Verwandte Begriffe
JSON in Ihrem Projekt einsetzen?
Wir beraten Sie gerne zu JSON und finden die optimale Lösung für Ihre Anforderungen. Profitieren Sie von unserer Erfahrung aus über 200 Projekten.