Was JSON ist und wozu es taugt
JSON (JavaScript Object Notation) bewegt heute einen großen Teil des deutschsprachigen Webs. Wenn du die Sparkassen-App öffnest, ein DHL-Paket verfolgst oder den Fahrplan in der DB-Navigator-App abrufst, reist meistens ein kleines JSON-Dokument zwischen deinem Smartphone und einem Server.
Dieser Leitfaden soll JSON ohne Umschweife erklären: was es ist, wie man es schreibt, welche Fehler Anfänger fast immer machen und wie du JSON in Sekunden validierst.
Eine Definition ohne Fachjargon
JSON ist ein Textformat zur Darstellung strukturierter Daten. Es entstand aus der Objekt-Syntax von JavaScript, wird heute aber von jeder ernstzunehmenden Sprache verstanden: Python, Java, PHP, Ruby, C#, Go, Rust und natürlich JavaScript.
Die Idee ist denkbar einfach: "Schlüssel": Wert-Paare, in geschweiften Klammern gruppiert. Ein Produkt in einem Online-Shop könnte so aussehen:
{ "id": 12345, "name": "T-Shirt aus Bio-Baumwolle", "verfuegbareGroessen": ["S", "M", "L"], "lagerbestand": 42, "imAngebot": true }
Keine Tags wie in XML, keine seltsamen Trennzeichen. Nur Schlüssel, Doppelpunkte und Werte. Genau deshalb hat JSON XML für die meisten Datenaustausch-Szenarien abgelöst.
Die erlaubten Datentypen
JSON kennt nur sechs Werttypen: Zeichenkette in doppelten Anführungszeichen, Zahl (ohne Unterscheidung zwischen Ganzzahl und Dezimalzahl), Boolean (true oder false), null für Abwesenheit, Array in eckigen Klammern und Objekt in geschweiften Klammern. Mehr nicht.
Es gibt keinen nativen Datentyp für Datum. Für das Bestelldatum verwendet man eine Zeichenkette im ISO-8601-Format: "2025-03-14T18:30:00Z". Kommentare gibt es auch nicht. Wenn du Kommentare mit // oder /* */ in einer .json-Datei siehst, handelt es sich in Wirklichkeit um JSON5 oder JSONC, Varianten, die nicht jede Bibliothek akzeptiert.
Typische Anfängerfehler
Der häufigste Fehler: einfache statt doppelte Anführungszeichen. JSON verlangt doppelte Anführungszeichen, sowohl für Schlüssel als auch für Textwerte. Ein weiterer Klassiker ist ein Komma hinter dem letzten Element eines Arrays oder Objekts. In Standard-JSON bricht das Parsen.
Schlüssel stehen immer in Anführungszeichen. In JavaScript darfst du { name: "Lukas" } schreiben, in JSON muss es { "name": "Lukas" } heißen. Für sehr große Zahlen wie eine IBAN oder eine Steuer-ID verwendest du besser eine Zeichenkette: Ganzzahlen über 2^53 verlieren an Genauigkeit.
JSON in Sekunden validieren
Wenn eine API einen kryptischen Fehler liefert, liegt es fast immer an einem falsch gesetzten Komma. Der schnellste Weg, das zu finden: JSON in einen Validator einfügen. Unser Online-Formatter zeigt dir die genaue Zeile und schreibt das Dokument mit lesbarer Einrückung neu.
In der Kommandozeile ist jq die Referenz: jq . bestellung.json erkennt Syntaxprobleme und gibt das Ergebnis farbig aus. In Python erfüllt json.tool denselben Zweck. In Node wirft JSON.parse eine Ausnahme mit der Position des fehlerhaften Zeichens.
JSON und Performance in echten Anwendungen
Großes JSON ist nicht kostenlos. Wenn deine API zehntausend Produkte auf einmal zurückliefert, muss der Browser das gesamte JSON parsen, bevor er irgendetwas anzeigen kann. Es lohnt sich, zu paginieren (?seite=1&proSeite=50), serverseitig gzip oder brotli zu aktivieren und nur die wirklich benötigten Felder auszuliefern.
Für stark repetitive Daten können Formate wie NDJSON (ein JSON pro Zeile) oder MessagePack effizienter sein. Aber in 95 % der Fälle reicht ein gut strukturiertes JSON mit aktiviertem gzip vollkommen aus.
Verwandte Werkzeuge
Häufige Fragen
- Was ist der Unterschied zwischen JSON und einem JavaScript-Objekt?
- Ein JavaScript-Objekt lebt im Speicher und kann Funktionen, Datumsangaben oder Referenzen enthalten. JSON ist nur Text, der Daten darstellt: keine Funktionen, kein natives Datum, kein undefined. Um ein Objekt über das Netzwerk zu schicken, wandelst du es mit JSON.stringify um.
- Ist JSON case-sensitive?
- Ja. "Name" und "name" sind unterschiedliche Schlüssel. Im JavaScript-Umfeld ist camelCase Konvention ("erstellungsDatum"), in Python sieht man oft snake_case ("erstellungs_datum"). Wähle eine Konvention und halte sie im ganzen Projekt durch.
- Wie speichere ich Umlaute und Sonderzeichen wie ä, ö, ü oder ß?
- JSON unterstützt UTF-8 nativ, du kannst also "Müller", "Größe" oder "Straße" einfach hinschreiben. Manchmal siehst du Sequenzen wie \u00fc, das ist die escape-Form und bedeutet dasselbe. Stelle sicher, dass dein Server den Header Content-Type: application/json; charset=utf-8 sendet.
- Kann ich JSON zum Konfigurieren meiner Anwendung verwenden?
- Ja, aber überlege, was du brauchst. Brauchst du Kommentare oder Variablen, sind YAML oder TOML angenehmer. Für reine Schlüssel-Wert-Paare funktioniert JSON einwandfrei und jede Sprache liest es ohne Zusatzbibliothek.
- Gibt es eine empfohlene Maximalgröße?
- Keine offizielle Grenze. Ab etwa 1 MB wird das Parsen auf älteren Smartphones spürbar. Wenn deine Antwort diesen Wert überschreitet, lohnt es sich fast immer, zu paginieren oder nur die tatsächlich genutzten Felder zurückzugeben.