← Zurück zum Blog

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 Team14 Min. Lesezeittroubleshooting
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

14 Min. Lesezeit

# 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

"Unexpected end of JSON input"
  • Fehlende schließende Klammer
  • Unvollständiges JSON-Dokument

"Unexpected string in JSON"
  • 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.

Share:

Verwandte Artikel

Read in English