Häufige JSON-Fehler und wie man sie behebt
Lernen Sie die häufigsten JSON-Fehler kennen und wie Sie sie vermeiden. Kompletter Leitfaden zu Syntaxfehlern, Parsing-Problemen und Debugging-Techniken.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# Häufige JSON-Fehler und wie man sie behebt
JSON-Fehler können frustrierend sein, aber die meisten lassen sich leicht beheben, wenn man weiß, wonach man suchen muss. Dieser Leitfaden hilft Ihnen, die häufigsten Probleme zu erkennen und zu lösen.
Die häufigsten JSON-Syntaxfehler
1. Fehlendes oder zusätzliches Komma
Fehler: Fehlendes Komma{
"name": "Max Mustermann"
"alter": 30
}
Richtig:
{
"name": "Max Mustermann",
"alter": 30
}
Fehler: Trailing Comma (zusätzliches Komma)
{
"name": "Max Mustermann",
"alter": 30,
}
Richtig:
{
"name": "Max Mustermann",
"alter": 30
}
2. Falsche Anführungszeichen
Fehler: Einfache Anführungszeichen{
'name': 'Max Mustermann',
'alter': 30
}
Richtig:
{
"name": "Max Mustermann",
"alter": 30
}
3. Nicht maskierte Sonderzeichen
Fehler:{
"nachricht": "Das ist eine "Testnachricht""
}
Richtig:
{
"nachricht": "Das ist eine \"Testnachricht\""
}
Strukturelle Fehler
4. Fehlende geschweifte oder eckige Klammern
Fehler:{
"benutzer": {
"name": "Max",
"alter": 30
}
Richtig:
{
"benutzer": {
"name": "Max",
"alter": 30
}
}
5. Ungültige Schlüssel ohne Anführungszeichen
Fehler:{
name: "Max Mustermann",
alter: 30
}
Richtig:
{
"name": "Max Mustermann",
"alter": 30
}
Datentypfehler
6. Falsche Boolean-Werte
Fehler:{
"aktiv": True,
"verifiziert": FALSE
}
Richtig:
{
"aktiv": true,
"verifiziert": false
}
7. Ungültige null-Werte
Fehler:{
"wert": NULL,
"andererWert": nil
}
Richtig:
{
"wert": null,
"andererWert": null
}
8. Kommentare im JSON
Fehler:{
// Dies ist ein Kommentar
"name": "Max Mustermann",
/ Mehrzeiliger
Kommentar /
"alter": 30
}
Hinweis: JSON unterstützt keine Kommentare. Verwenden Sie JSONC oder JSON5, wenn Kommentare benötigt werden.
Encoding-Probleme
9. Falsche Zeichenkodierung
Problem: UTF-8 ohne BOM verwenden Lösung:{
"text": "Spezielle Zeichen: ä ö ü ß",
"emoji": "🎉"
}
Stellen Sie sicher, dass Ihre Datei als UTF-8 ohne BOM gespeichert ist.
10. Steuerzeichen im Text
Fehler:{
"text": "Zeile 1
Zeile 2"
}
Richtig:
{
"text": "Zeile 1\nZeile 2"
}
Parsing-Fehler
Typische Fehlermeldungen und ihre Bedeutung
"Unexpected token"- Prüfen Sie auf fehlende oder zusätzliche Kommas
- Überprüfen Sie Anführungszeichen
- Suchen Sie nach nicht maskierten Sonderzeichen
- Fehlende schließende Klammer
- Unvollständiges JSON-Dokument
- Fehlendes Komma zwischen Eigenschaften
- Fehlende Anführungszeichen um Schlüssel
Debugging-Techniken
1. Online-Validatoren verwenden
// Verwenden Sie Tools wie JSONLint oder BigJSON
const validateJSON = async (jsonString: string) => {
try {
JSON.parse(jsonString);
return { valid: true };
} catch (error) {
return {
valid: false,
error: error.message
};
}
};
2. JSON-Formatierung
const formatJSON = (obj: any): string => {
return JSON.stringify(obj, null, 2);
};
// Beispiel
const data = {"name":"Max","alter":30};
console.log(formatJSON(data));
3. Schema-Validierung
import Ajv from 'ajv';
const ajv = new Ajv();
const schema = {
type: "object",
properties: {
name: { type: "string" },
alter: { type: "number" }
},
required: ["name", "alter"]
};
const validate = ajv.compile(schema);
const data = { name: "Max", alter: 30 };
const valid = validate(data);
if (!valid) {
console.log(validate.errors);
}
Best Practices zur Fehlervermeidung
1. Immer Validieren
const safeJSONParse = <T>(jsonString: string): T | null => {
try {
return JSON.parse(jsonString);
} catch (error) {
console.error('JSON-Parsing fehlgeschlagen:', error);
return null;
}
};
2. Automatische Formatierung verwenden
// In package.json
{
"scripts": {
"format:json": "prettier --write '*/.json'"
}
}
3. TypeScript-Typen verwenden
interface Benutzer {
name: string;
alter: number;
email?: string;
}
const benutzerJSON: string = '{"name":"Max","alter":30}';
const benutzer: Benutzer = JSON.parse(benutzerJSON);
4. Fehlerbehandlung implementieren
const fetchJSON = async <T>(url: string): Promise<T> => {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(HTTP-Fehler! Status: \\${response.status});
}
const text = await response.text();
try {
return JSON.parse(text);
} catch (parseError) {
throw new Error('Ungültiges JSON in der Antwort');
}
} catch (error) {
console.error('Fehler beim Abrufen der JSON-Daten:', error);
throw error;
}
};
Häufige Probleme in verschiedenen Sprachen
JavaScript/TypeScript
// Problem: undefined in JSON
const obj = {
name: "Max",
wert: undefined
};
console.log(JSON.stringify(obj));
// Ausgabe: {"name":"Max"}
// undefined wird weggelassen!
// Lösung: null verwenden
const objFixed = {
name: "Max",
wert: null
};
Python
import json
# Problem: Einfache Anführungszeichen
data = {'name': 'Max', 'alter': 30}
json_str = str(data) # Falsch!
# Richtig:
json_str = json.dumps(data)
PHP
<?php
// Problem: Nicht-UTF8 Zeichen
$data = array("name" => "Max", "stadt" => "München");
// Richtig:
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
?>
Erweiterte Fehlersuche
1. JSON-Diff verwenden
import { diff } from 'json-diff';
const vorher = { name: "Max", alter: 30 };
const nachher = { name: "Max", alter: 31 };
console.log(diff(vorher, nachher));
2. Circular Reference Detection
const obj: any = { name: "Max" };
obj.self = obj; // Zirkuläre Referenz
// Fehler: TypeError: Converting circular structure to JSON
// Lösung:
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key: string, value: any) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return "[Circular]";
}
seen.add(value);
}
return value;
};
};
const jsonStr = JSON.stringify(obj, getCircularReplacer());
3. Große JSON-Dateien debuggen
import fs from 'fs';
import JSONStream from 'JSONStream';
const validateLargeJSON = (filePath: string): Promise<boolean> => {
return new Promise((resolve, reject) => {
const stream = fs.createReadStream(filePath)
.pipe(JSONStream.parse('*'));
stream.on('data', (data) => {
// Validieren Sie jedes Element
console.log('Gültiges Element:', data);
});
stream.on('error', (error) => {
reject(error);
});
stream.on('end', () => {
resolve(true);
});
});
};
Checkliste zur Fehlervermeidung
✅ Alle Schlüssel in doppelten Anführungszeichen
✅ Alle String-Werte in doppelten Anführungszeichen
✅ Kommas zwischen allen Eigenschaften (außer der letzten)
✅ Keine trailing Commas
✅ Alle Klammern geschlossen
✅ Boolean-Werte kleingeschrieben (true, false)
✅ null kleingeschrieben
✅ Keine Kommentare
✅ UTF-8 Encoding
✅ Alle Sonderzeichen maskiert
✅ Keine Steuerzeichen im Text
Zusammenfassung
Die meisten JSON-Fehler sind Syntaxfehler, die sich leicht vermeiden lassen:
- Verwenden Sie immer doppelte Anführungszeichen
- Achten Sie auf korrekte Kommasetzung
- Validieren Sie JSON vor der Verwendung
- Nutzen Sie Formatierungs-Tools
- Implementieren Sie robuste Fehlerbehandlung
Mit diesen Kenntnissen und Tools können Sie JSON-Fehler schnell identifizieren und beheben.
Verwandte Artikel
JSON formatieren: Vollständige Anleitung mit Tools und Techniken
Lernen Sie, wie Sie JSON-Daten richtig formatieren. Praktische Anleitungen, Tools, Code-Beispiele und Best Practices für lesbares JSON.
JSON Beautifier: Vollständige Anleitung für schönes JSON
Lernen Sie, wie JSON-Beautifier funktionieren. Anleitungen, Tools, Code-Beispiele und Best Practices für perfekt formatierten JSON-Code.
JSON Schema verstehen: Vollständiger Leitfaden zur Validierung
Lernen Sie JSON Schema: Definition, Validierung, Best Practices. Erstellen und verwenden Sie Schemas für robuste JSON-Datenvalidierung.