Häufige JSON-Syntaxfehler und wie man sie mit einem Validator behebt
Häufige JSON-Fehler
Die strengen Syntaxregeln von JSON bedeuten, dass bereits ein einziges falsch platziertes Zeichen ein ganzes Dokument zerstören kann. Wenn Sie die häufigsten JSON-Fehler verstehen, können Sie schneller debuggen und vermeiden, dieselben Fehler zu wiederholen. Im Folgenden finden Sie die häufigsten Probleme, auf die Entwickler stoßen, mit klaren Erklärungen und Korrekturen für jeden Fehler.
1. Nachgestellte Kommas
Fehler: Unexpected token am Ende eines Objekts oder Arrays
Nachgestellte Kommas sind in JavaScript-Objekten und -Arrays erlaubt, aber in JSON strengstens verboten.
Ungültiges JSON:
{
"name": "Alice",
"age": 30,
}
Korrektur: Entfernen Sie das Komma nach dem letzten Element.
{
"name": "Alice",
"age": 30
}
Arrays mit nachgestellten Kommas:
// Invalid
[1, 2, 3,]
// Valid
[1, 2, 3]
2. Fehlende oder falsche Anführungszeichen um Schlüssel
Fehler: Unexpected identifier oder Expected double-quoted property name
JSON erfordert, dass alle Objektschlüssel in doppelte Anführungszeichen gesetzt werden. Einfache Anführungszeichen und Schlüssel ohne Anführungszeichen sind nicht gültig, obwohl sie in JavaScript funktionieren.
Ungültiges JSON:
{
name: "Alice",
'occupation': "Engineer"
}
Korrektur: Setzen Sie Schlüssel immer in doppelte Anführungszeichen.
{
"name": "Alice",
"occupation": "Engineer"
}
3. Verwendung einfacher Anführungszeichen für String-Werte
Fehler: Unexpected identifier oder Unterminated string
Genau wie bei Schlüsseln müssen String-Werte in JSON doppelte Anführungszeichen verwenden. Einfache Anführungszeichen sind nicht gültig.
Ungültiges JSON:
{ "greeting": 'Hello, world!' }
Korrektur: Ersetzen Sie einfache durch doppelte Anführungszeichen.
{ "greeting": "Hello, world!" }
Tipp: Wenn Ihr String doppelte Anführungszeichen enthält, maskieren Sie sie mit einem Backslash: "He said, \"Hello\"".
4. Nicht maskierte Sonderzeichen
Fehler: Unexpected token oder Invalid character
Bestimmte Zeichen müssen in JSON-Strings maskiert werden: doppelte Anführungszeichen ("), Backslashes (\) und Steuerzeichen.
Ungültiges JSON:
{
"path": "C:\Users\Documents\file.json",
"quote": "He said "hello""
}
Korrektur: Maskieren Sie Backslashes und doppelte Anführungszeichen korrekt.
{
"path": "C:\\Users\\Documents\\file.json",
"quote": "He said \"hello\""
}
Vollständige Liste der JSON-Escape-Sequenzen
| Sequenz | Bedeutung |
|----------|-----------|
| \" | Doppeltes Anführungszeichen |
| \\ | Backslash |
| \/ | Schrägstrich |
| \b | Backspace |
| \f | Seitenvorschub |
| \n | Zeilenumbruch |
| \r | Wagenrücklauf |
| \t | Tabulator |
| \uXXXX | Unicode-Zeichen (z. B. é für e) |
5. Ungültige Zahlenformate
Fehler: Unexpected number oder Invalid number
JSON hat spezifische Regeln für die Formatierung von Zahlen:
- Führende Nullen sind nicht erlaubt (
01ist ungültig) - Eine einzelne führende Null ist nur für die Zahl
0erlaubt - Zahlen dürfen keine nachgestellten Punkte haben (
10.ist ungültig) - Hexadezimale, oktale und binäre Formate werden nicht unterstützt
Ungültiges JSON:
{
"invalid1": 01,
"invalid2": 10.,
"invalid3": 0xFF,
"invalid4": 1,000
}
Korrektur:
{
"valid1": 1,
"valid2": 10.0,
"valid3": 255,
"valid4": 1000
}
6. Ungültige Werte: undefined, NaN, Infinity
Fehler: Unexpected token für undefined, NaN, Infinity
JavaScript hat Werte, die kein JSON-Äquivalent haben. Diese verursachen Parsing-Fehler:
Ungültiges JSON:
{
"undefinedVal": undefined,
"notANumber": NaN,
"infinity": Infinity
}
Korrektur: Ersetzen Sie sie durch gültige JSON-Werte oder verwenden Sie eine Konvention.
{
"undefinedVal": null,
"notANumber": null,
"infinity": 1.7976931348623157e+308
}
7. Zusätzliche oder fehlende Kommas
Fehler: Expected comma oder Unexpected token
Kommas in JSON müssen jedes Schlüssel/Wert-Paar und jedes Array-Element trennen, dürfen aber nicht nach dem letzten Element stehen.
Fehlendes Komma (ungültig):
{
"name": "Alice"
"age": 30
}
Korrektur: Fügen Sie das fehlende Komma hinzu.
{
"name": "Alice",
"age": 30
}
8. Probleme mit tief verschachtelten Strukturen
Fehler: Maximum call stack size exceeded oder Parser-Timeout
Obwohl es kein Syntaxfehler ist, kann tief verschachteltes JSON (10+ Ebenen) Leistungsprobleme verursachen und das Debuggen äußerst schwierig machen.
Problematische Struktur:
{
"level1": {
"level2": {
"level3": {
"level4": {
"level5": {
"level6": {
"value": "too deep"
}
}
}
}
}
}
}
Besserer Ansatz: Flachen Sie die Struktur ab oder verwenden Sie Referenzen.
{
"users": {
"alice": { "role": "admin" }
},
"permissions": {
"admin": ["read", "write", "delete"]
}
}
9. Fehlende öffnende oder schließende geschweifte Klammern
Fehler: Expected ',' or '}' oder Unexpected end of JSON input
Nicht übereinstimmende geschweifte und eckige Klammern sind eine häufige Quelle von JSON-Fehlern, insbesondere bei großen oder handgeschriebenen JSON-Dateien.
Ungültiges JSON:
{
"name": "Alice",
"items": [1, 2, 3
}
Korrektur: Stellen Sie sicher, dass jedes { ein passendes } hat und jedes [ ein passendes ].
{
"name": "Alice",
"items": [1, 2, 3]
}
Prof-Tipp: Rücke Ihr JSON korrekt ein, um öffnende und schließende Klammern visuell abzugleichen. Ein JSON-Formatter kann dies automatisch erledigen.
So debuggen Sie JSON-Fehler effektiv
- Einen JSON-Validator verwenden -- Fügen Sie Ihr JSON in einen kostenlosen JSON-Validator ein, um die genaue Zeile und Spalte des ersten Fehlers zu erhalten.
- Inkrementell validieren -- Validieren Sie bei großen Dateien jeweils einen Abschnitt, um den Fehler zu isolieren.
- Auf Copy-Paste-Artefakte achten -- Unsichtbare Zeichen, typografische Anführungszeichen und geschützte Leerzeichen schleichen sich oft aus Textverarbeitungsprogrammen oder Webseiten ein.
- Zeichenkodierung prüfen -- Stellen Sie sicher, dass Ihre Datei als UTF-8 gespeichert ist. Andere Kodierungen können unsichtbare Fehler erzeugen.
- Einen Linter verwenden -- Tools wie ESLint mit dem
json-Plugin erkennen JSON-Fehler während der Entwicklung.
Denken Sie daran: JSON-Parser melden in der Regel nur den ersten Syntaxfehler. Beheben Sie diesen einen, validieren Sie erneut und wiederholen Sie den Vorgang, bis das Dokument fehlerfrei ist. Unser JSON-Formatter-&-Validator -Tool liefert Ihnen sofortige, detaillierte Fehlermeldungen, um diesen Prozess zu beschleunigen.