JSON vor API-Anfragen validieren
Ein schneller Validierungsschritt vor einer API-Anfrage trennt JSON-Syntaxprobleme klar von Authentifizierungs-, Schema- und Backend-Fehlern.
Warum vor dem Senden validieren
Wenn ein API-Request fehlschlägt, kann die Fehlermeldung auf Authentifizierung, Berechtigungen, Schema-Validierung oder fehlerhaftes JSON deuten. Den JSON-Body vorher zu validieren entfernt eine ganze Fehlerklasse, bevor der Request am Server ankommt. Außerdem werden kopierte cURL-Befehle, Postman-Bodies, Webhook-Samples und Integrationstests leichter zu reviewen.
Welche Syntaxchecks laufen sollten
Eine strikte JSON-Validierung sollte bestätigen, dass der Body als JSON parst und dass die formatierte Ausgabe dem entspricht, was du senden wolltest.
- Jeder String und jeder Objektschlüssel benutzt doppelte Anführungszeichen
- Keine Kommentare oder nachgestellten Kommas
- Booleans sind true oder false, nicht True oder False
- Fehlende Werte sind null oder weggelassen, nicht undefined
- Der Top-Level-Wert passt zur Erwartung des Endpoints
Header zählen auch
Ein gültiger JSON-Body kann immer noch scheitern, wenn der Request den falschen Content-Type meldet. Für die meisten JSON-APIs schickst du Content-Type: application/json. Prüft das Endpoint auch Accept, ergänze Accept: application/json, damit Client und Server sich aufs Format einigen.
Fehlerhafter Request-Body
{ userId: 42, active: True, tags: ['beta',], }
Korrigierter Request-Body
{ "userId": 42, "active": true, "tags": ["beta"] }
Nach der Syntaxvalidierung
Syntaxvalidierung beweist nur, dass das Dokument parsbar ist. Für Produktions-Requests prüfst du außerdem das Schema: Pflichtfelder, unbekannte Felder, Wertetypen, Array-Längen, Enum-Werte, Datums-Strings und ob numerische Identifier Zahlen oder Strings sein sollen.
Debugging-Tipp
Wenn der Server gültiges JSON weiter ablehnt, vergleiche den formatierten Request-Body mit einem bekannt-guten Beispiel. Ein semantisches JSON-Diff findet echte Wertänderungen, während es Schlüsselreihenfolge ignoriert — besonders nützlich bei Payloads aus unterschiedlichen Tools.
Ein kleiner fetch + Ajv-Wrapper
Validiere den Response-Body gegen ein bekanntes Schema, bevor du ihn deinem App-Code übergibst. Das Schema beim Modul-Load einmal kompilieren und jeden Call schützen: const validate = ajv.compile(schema); const res = await fetch(url); const data = await res.json(); if (!validate(data)) throw new Error("Schema mismatch: " + ajv.errorsText(validate.errors)); return data; — Vertragsbrüche fallen so an der Grenze auf und nicht fünf Schichten tiefer.
JSON-Reparatur-Anleitungen
Themen-Hubs
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Konkrete Anleitungen
- Base64-Strings dekodieren (und JWT-Payloads)
- URL-Kodierung: Query-Parameter und Pfade prozentkodieren
- YAML zu JSON konvertieren (und Einrückungsfehler vermeiden)
- JSON zu CSV konvertieren: ein Array von Objekten abflachen
- JSON zu XML konvertieren: Wurzel, Attribute und Arrays
- JSON als String-Literal escapen (und doppelt kodiertes JSON dekodieren)
- Nachgestellte Kommas in JSON beheben
- Einfache Anführungszeichen in JSON beheben
- Unanführte Schlüssel in JSON beheben
- LLM-JSON-Ausgabe reparieren
- JSON-Parse-Fehler «Expected Property Name» beheben
- JSON vs. JavaScript-Objektliteral
- JSON-Formatter vs. JSON Repair
- JSON-Fehler «Unexpected Token» beheben
- JSON-zu-JavaScript-Objekt-Konverter