Was ist JSON
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Daten austauschformat. Frontend-Backend-Kommunikation, Konfigurationsdateien und API-Antworten verwenden alle JSON. Klare Struktur, von Menschen lesbar, von Maschinen analysierbar – der De-facto-Standard der modernen Entwicklung.
JSON-Syntaxregeln
Datentypen
- Zeichenfolge: in doppelten Anführungszeichen, z. B. "hello"
- Zahl: Ganzzahl oder Fließkomma, z. B. 42, 3.14
- Boolean: true oder false
- Nullwert: null
- Array: in eckigen Klammern, z. B. [1, 2, 3]
- Objekt: in geschweiften Klammern, Schlüssel-Wert-Paare, z. B. {"name": "Tom"}
- Verschachtelung: Objekte und Arrays können sich gegenseitig schachteln
Grundregeln
- Schlüssel müssen in doppelten Anführungszeichen stehen (nicht in einfachen)
- Zeichenfolgen müssen in doppelten Anführungszeichen stehen
- Kein abschließendes Komma (kein Komma nach dem letzten Element)
- Keine Kommentare
- Auf oberster Ebene nur Objekt oder Array
Die drei Bedürfnisse der Formatierung
Validierung
Prüfen, ob die JSON-Syntax korrekt ist. Ein fehlendes Komma, ein Komma zu viel, nicht passende Anführungszeichen führen zum Analysefehler.
Verschönerung (Pretty Print)
Ein einzeiliges komprimiertes JSON in ein mehrzeiliges Format mit Einrückungen umwandeln, damit Menschen es lesen können.
Komprimierte Form:
{"name":"Tom","age":20,"tags":["a","b"]}
Verschönert:
{
"name": "Tom",
"age": 20,
"tags": ["a", "b"]
}
Minifizieren
Beim Minifizieren werden alle Leerzeichen und Zeilenumbrüche aus dem verschönerten Format entfernt und in eine Zeile komprimiert, um die Größe zu reduzieren. Verwendet für Übertragung und Speicherung.
Häufige JSON-Fehler
Anführungszeichenfehler
- Einfache Anführungszeichen verwendet: JSON erlaubt nur doppelte
- Nicht geschlossene Anführungszeichen
- Schlüsselnamen ohne Anführungszeichen
Falsch: {'name': 'Tom'} (einfache Anführungszeichen) Richtig: {"name": "Tom"}
Kommafehler
- Abschließendes Komma: ein Komma zu viel nach dem letzten Element
- Vergessenes Komma: Komma zwischen Elementen vergessen
Falsch: {"a": 1, "b": 2,} (abschließendes Komma) Richtig: {"a": 1, "b": 2}
Datentypfehler
- undefined verwendet (JSON hat kein undefined, null verwenden)
- NaN / Infinity verwendet (JSON unterstützt das nicht)
- Funktionen und Date-Objekte lassen sich nicht direkt serialisieren
Escape-Fehler
Sonderzeichen in Zeichenfolgen müssen escaped werden:
- Anführungszeichen: "
- Backslash: \
- Zeilenumbruch: \n
- Tabulator: \t
- Wagenrücklauf: \r
Falsch: "He said "hello"" (Anführungszeichen nicht escaped) Richtig: "He said "hello""
Encoding-Fehler
JSON muss in UTF-8 kodiert sein. Andere Kodierungen können zu verstümmeltem Chinesisch oder Analysefehlern führen.
Verschachtelung und Ebenen
Verschachtelungsbeispiel
{
"user": {
"name": "Tom",
"address": {
"city": "Peking",
"zip": "100000"
}
},
"orders": [
{"id": 1, "items": ["A", "B"]},
{"id": 2, "items": ["C"]}
]
}
Einrückung
- 2-Leerzeichen-Einrückung: am gebräuchlichsten
- 4-Leerzeichen-Einrückung: großzügiger
- Tab-Einrückung: manche Teams nutzen sie
Beim Verschönern den Einrückungsstil vereinheitlichen.
Tiefe Verschachtelung
Über 5 Ebenen Verschachtelung wird die Lesbarkeit schwierig. Struktur abflachen oder aufteilen.
JSON und andere Formate
JSON vs JSONL
- JSON: die gesamte Datei ist ein JSON (meist Objekt oder Array)
- JSONL (JSON Lines): jede Zeile ein eigenständiges JSON, geeignet für Logs und Streaming-Daten
JSON vs JSON5
JSON5 ist eine JSON-Erweiterung und unterstützt:
- Einfache Anführungszeichen
- Abschließende Kommas
- Kommentare
- Hexadezimalzahlen
Aber JSON5 ist kein Standard-JSON, die Parser-Kompatibilität ist begrenzt.
JSON vs YAML
- JSON: strenge Syntax, maschinenfreundlich
- YAML: lockere Syntax (Kommentare, Einrückung für Hierarchie), menschenfreundlich
- Konfigurationsdateien nutzen oft YAML, API-Übertragung nutzt JSON
JSON vs XML
- JSON: leichtgewichtig, kein Tag-Overhead
- XML: Tags verbose, aber unterstützt Attribute und Namespaces
- In der modernen Entwicklung hat JSON XML weitgehend verdrängt
Praktische Tipps
JSON kopieren
JSON aus API-Antwort oder Log kopieren, in ein Formatierungswerkzeug einfügen und verschönern, leichter lesbar.
JSON debuggen
Wenn eine Schnittstelle einen Fehler zurückgibt, das Antwort-JSON formatieren und prüfen, ob die Felder korrekt sind.
Konfigurationsdateien
Konfigurationsdateien in JSON schreiben, nach der Formatierung jedes Feld kommentieren (Achtung: Standard-JSON unterstützt keine Kommentare, JSONC oder separate Doku verwenden).
Datenkonvertierung
Bei CSV zu JSON, XML zu JSON usw. das Ergebnis nach der Konvertierung formatieren und validieren.
Mit dem CSV-zu-JSON-Werkzeug Tabellendaten mit einem Klick in JSON umwandeln.
Nutzung des Formatierungswerkzeugs
Validierung
JSON einfügen, das Werkzeug prüft die Syntax. Bei Fehlern werden Position und Ursache angegeben.
Verschönerung
Komprimiertes JSON einfügen, Einrückung wählen, auf Verschönern klicken, mehrzeilige Ausgabe.
Minifizieren
Verschönertes JSON einfügen, auf Minifizieren klicken, einzeilige Ausgabe.
Escaping
Sonderzeichen in der JSON-Zeichenfolge escapen oder umgekehrt zurückwandeln.
JSON mit DocsAll verarbeiten
JSON umfasst Kodierung und Konvertierung; passende Werkzeuge:
- Kodierungs-/Dekodierungswerkzeug: JSON-Zeichenfolgen-Escaping behandeln
- CSV-zu-JSON-Werkzeug: Tabelle zu JSON
Verarbeitung im Browser, Daten werden nicht hochgeladen.
Häufige Fragen
Nach Formatierung wird Chinesisch zu \uXXXX
Manche Werkzeuge escapen Chinesisch standardmäßig. Um das Original-Chinesisch anzuzeigen, die Unicode-Escape-Option deaktivieren.
Großes JSON ruckelt
Sehr großes JSON (mehrere MB) kann beim Formatieren hängen. Kommandozeilen-Tools (z. B. jq) sind effizienter.
Was ist mit Kommentaren?
Standard-JSON unterstützt keine Kommentare. Für Kommentare JSONC, JSON5 oder YAML verwenden.
Zusammenfassung
JSON-Formatierung hat drei Kernaufgaben: Syntax validieren, Lesbarkeit verschönern, Übertragung minifizieren. Häufige Fehler betreffen Anführungszeichen, Kommas und Escaping. JSON lässt sich mit dem DocsAll Kodierungs-/Dekodierungswerkzeug und dem CSV-zu-JSON-Werkzeug verarbeiten, läuft im Browser, Daten bleiben lokal.