Was ist JSON
JSON (JavaScript Object Notation) ist ein Textformat für strukturierte Daten, definiert in RFC 8259. Es repräsentiert Objekte als Schlüssel/Wert-Paare und Listen als Arrays und nutzt sechs Satzzeichen sowie ein striktes Typsystem. Jede Web-API, jedes Konfigurationstool und jede Datenbank kann es heute lesen – und es ist mit Absicht so einfach, dass man es an einem Nachmittag lernt.
Was ist JSON erklärt
JSON ist das Format, in dem Daten ankommen. Wenn eine Wetter-App die Prognose für morgen zeigt, eine Tabellenkalkulation Datensätze exportiert oder eine Konfigurationsdatei mit einem Dienst mitkommt, ist der Text, der zwischen diesen Systemen unterwegs ist, fast immer JSON: geschweifte Klammern mit Schlüsseln und Werten, eckige Klammern mit Listen und ein kleines Regelwerk zu Strings und Zahlen, dem jede Programmiersprache zustimmt.
Es wurde um 2001 aus der Objektliteral-Syntax von JavaScript extrahiert und zuerst als RFC 4627 standardisiert, später überarbeitet als RFC 8259 – die heute gültige Fassung, neben dem identischen ECMA-404-Standard. Der Name nennt weiterhin JavaScript, aber das Format ist von Entwurf her sprachneutral – Python, Java, Go, C#, SQL und Ihr Texteditor sprechen es alle fließend, und genau deshalb wurde es zur üblichen Art, wie Programme Daten austauschen.
Dieser Leitfaden erklärt, woraus JSON tatsächlich besteht – seine sechs Datentypen, seine zwei Container, seine Escaping-Regeln –, jeweils mit kopierbaren Beispielen. Wo eine Erklärung einen praktischen nächsten Schritt nahelegt, läuft das verlinkte Tool in Ihrem Browser: Sie können das gerade gelesene Beispiel formatieren, prüfen oder umwandeln, ohne etwas zu installieren.
Am schnellsten verinnerlichen Sie die folgenden Syntaxregeln, indem Sie sie absichtlich brechen und zusehen, wie ein Parser reagiert – der JSON-Formatierer zeigt Ihnen Zeile und Spalte jedes Fehlers exakt an.
Sobald Sie jede Regel auf einer Nachschlageseite zusammengefasst wollen, verdichtet der JSON-Syntax-Spickzettel diesen Leitfaden zu einer Nachschlagetabelle.
Die zwei Container: Objekte und Arrays
Alles in JSON baut auf zwei Strukturen auf. Ein Objekt ist eine ungeordnete Menge von Schlüssel/Wert-Paaren in geschweiften Klammern – die Schlüssel sind immer Strings, die Werte können jeder JSON-Wert sein, und Paare werden durch Kommata getrennt. Ein Array ist eine geordnete Liste von Werten in eckigen Klammern; seine Werte dürfen beliebig gemischte Typen haben.
Ein Objekt (Schlüssel/Wert-Paare)
{
"name": "Ada Lovelace",
"born": 1815,
"mathematician": true
}Ein Array (geordnete Werte)
[ "analytical engine", 1843, null ]
Die sechs Datentypen
Vier sind Skalare – string, number, boolean und null –, und zwei sind die oben genannten Container. Die Regeln, die Neulinge überraschen, sind wenige, aber streng: Strings stehen immer in doppelten Anführungszeichen (einfache sind ungültig), Zahlen brauchen keine Anführungszeichen und dürfen nicht hexadezimal geschrieben sein, Booleans sind exakt die kleingeschriebenen Token true und false, und null ist ein eigener Wert, der bewusst leer bedeutet.
| Typ | Beispiele | Regel, die sich zu merken lohnt |
|---|---|---|
| string | "hello", "café", "é" | Nur doppelte Anführungszeichen; darin " und \ escapen |
| number | 42, -3.14, 2.1e10 | Kein Hex, kein NaN, keine führenden Nullen |
| boolean | true, false | Nur kleingeschrieben – True ist ungültig |
| null | null | Bedeutet bewusst leer, nicht die Zahl Null |
| object | {"key": "value"} | Schlüssel sind Strings; Kommata am Ende verboten |
| array | [1, "two", null] | Reihenfolge bleibt erhalten; Mischungen erlaubt |
Escaping: was in einem String leben darf
Innerhalb eines Strings müssen zwei Zeichen escaped werden, wo immer sie auftauchen: das doppelte Anführungszeichen (als \") und der Backslash (als \\). Für Steuerzeichen gibt es sechs weitere Escapes – \n für Zeilenumbruch, \t für Tabulator, \r für Wagenrücklauf, \b für Backspace, \f für Seitenvorschub –, und \/ für den Schrägstrich ist legal, aber optional. Jedes andere Zeichen darf wörtlich als UTF-8 erscheinen oder als \uXXXX-Escape für seinen Unicode-Codepoint – beide Formen bedeuten für einen Parser exakt denselben String.
Escaped-Schreibweise
"path": "C:\\Users\\ada" "quote": "she said \"hi\"" "emoji": "\ud83d\ude00"
Was ein Parser liefert
path: C:\Users\ada quote: she said "hi" emoji: 😀
Leerraum, Formatierung und warum Pretty-Printing existiert
Zwischen den strukturellen Satzzeichen erlaubt JSON genau vier Leerraumzeichen: Leerzeichen, Tabulator, Zeilenumbruch und Wagenrücklauf. Diese Erlaubnis macht Formatierung erst möglich – dasselbe Dokument kann auf der Leitung eine unlesbare Zeile sein und in Ihrem Editor ein eingerückter Baum, und beide sind für einen Parser Byte für Byte dieselben Daten. Formatierung ändert nichts an der Bedeutung; deshalb kann das Formatter-Tool gefahrlos auf jedem Payload laufen und ist minifiziertes JSON die übliche Wahl für den Transport.
- Keine Kommentare: RFC 8259 hat Kommentare bewusst entfernt, nachdem echte Parser auseinanderliefen. JSONC ist die inoffizielle Erweiterung, die manche Tools akzeptieren.
- Keine Kommata am Ende: [1, 2, 3,] ist ungültig, so freundlich es auch aussieht.
- Doppelte Schlüssel: Parser behalten entweder den ersten oder den letzten – RFC 8259 überlässt es den Implementierungen, weshalb Duplikate ein Bug sind, selbst wo sie parsen.
- Beliebige oberste Ebene: Jeder Wert darf ein ganzes Dokument sein – ein Array aus Zahlen ist vollständiges JSON.
Wo JSON benutzt wird – und wo nicht
JSON besitzt drei Gebiete: API-Anfrage- und Antwortkörper, strukturierte Konfiguration, in der Kommentare nicht fehlen, und ruhende Daten in Dokumentendatenbanken. Auf der Leitung teilt es sich widerwillig mit zwei Nachbarn – Binärformaten wie protobuf, die bei Größe und Geschwindigkeit gewinnen, wenn beide Enden ein Schema teilen, und YAML, das bei handeditierbarer Ops-Konfiguration gewinnt. JSON tief zu verstehen ist daher keine Fähigkeit unter vielen; es ist die Voraussetzung, um beide Nachbarn zu lesen, denn YAML 1.2 parst JSON, und die meisten Binärschemata dokumentieren sich mit JSON-Beispielen.
Häufig gestellte Fragen
Wofür steht JSON?
JavaScript Object Notation. Die Syntax wurde um 2001 von Douglas Crockford aus den Objektliteralen von JavaScript extrahiert, aber das Format selbst ist sprachneutral: RFC 8259 definiert es als Textformat, das jede Programmiersprache ausgeben und parsen kann – deshalb wurde es das universelle Austauschformat statt eines JavaScript-Features.
Ist JSON eine Programmiersprache?
Nein – es ist ein Datenformat ohne Ausführungssemantik. Es kann keine Logik, Variablen oder Funktionen ausdrücken, nur Struktur: Objekte, Arrays und vier skalare Typen. Die Strenge ist Absicht; die Grammatik von RFC 8259 passt auf rund eine Seite, und genau diese Eigenschaft ließ jede Sprache es identisch implementieren.
Was ist der Unterschied zwischen JSON und JavaScript-Objekten?
Drei sichtbare: JSON verlangt Schlüssel in doppelten Anführungszeichen, verbietet Kommata am Ende und hat kein undefined, keine Funktionen und keine Kommentare. Ein JavaScript-Objektliteral wie {name: 'ada'} ist kein gültiges JSON – {"name":"ada"} schon. Umgekehrt parst jedes gültige JSON-Dokument als JavaScript-Objekt, weshalb beide so oft verwechselt werden.
Warum erlaubt JSON keine Kommentare?
Douglas Crockford hat sie bewusst entfernt: Frühe Verhandlungen über das Format zeigten Anbietern, die Parsing-Direktiven in Kommentare stopften, was die Interoperabilität brach. Wenn Sie eine Anmerkung brauchen, ist die Konvention ein Geschwister-Schlüssel wie "//" oder "_comment", oder JSONC, wo die Toolchain es unterstützt – aber JSON auf der Leitung bleibt von Entwurf her kommentarfrei.
Wie prüfe ich, ob mein JSON gültig ist?
Fügen Sie es in einen Validator ein – der JSON-Validator dieser Website parst lokal gegen RFC 8259 und meldet die exakte Zeile und Spalte des ersten Syntaxfehlers, in Ihrem Browser. Häufige Fehlerquellen sind einfache Anführungszeichen, Kommata am Ende, Schlüssel ohne Anführungszeichen und typografische Anführungszeichen, die aus einer Textverarbeitung eingefügt wurden.
Ist JSON gefahrlos zu parsen?
JSON-Text zu parsen ist gefahrlos; was ein Parser Ihnen übergibt, kann trotzdem gefährlich sein, wenn Sie es ausführen. Zwei klassische Fallstricke: JavaScripts eval statt JSON.parse zu verwenden (eval führt Code aus) und unbegrenzte Entity-Ausweitung in von XML beeinflussten Tools. Ein standardkonformer Parser wie die in Browsern hat Tiefen- und Größenlimits und führt nie etwas aus.
Wo kann ich die hier zitierten Standards nachlesen?
- RFC 8259 — Das Datenaustauschformat JavaScript Object Notation (JSON)
- RFC 4627 — Der Medientyp application/json für JavaScript Object Notation (JSON) (veraltet; der aktuelle JSON-Standard ist RFC 8259)
- ECMA-404 — Die JSON-Syntax für den Datenaustausch
- YAML 1.2 — YAML-Spezifikation, Version 1.2 (Revision 1.2.2)
Welche verwandten Tools sollten Sie als Nächstes nutzen?
- JSON formatierenEinrückung und Sortierung einstellen, Kommentare entfernenÖffnen
- JSON validierenSyntax prüfen mit exakter Zeile und Spalte, per Klick reparierenÖffnen
- JSON-Syntax-SpickzettelLeitfaden in verständlicher SpracheÖffnen
- JSON in CSV umwandelnDatensätze in eine Tabelle umwandeln, Verschachtelung inklusiveÖffnen
- JSON-EscapingLeitfaden in verständlicher SpracheÖffnen
- JSON vs. YAMLDirekter VergleichÖffnen