JSON als String-Literal escapen (und doppelt kodiertes JSON dekodieren)
Stringify auf JSON umschließt es mit Anführungszeichen und escaped die inneren Anführungszeichen und Sonderzeichen, sodass ein JSON-String-Literal entsteht, das sicher woanders eingebettet werden kann.
Was «zum Literal stringifizieren» bedeutet
JSON.stringify auf einem JSON-String packt ihn in doppelte Anführungszeichen und escaped die inneren Anführungszeichen und Backslashes — Ergebnis ist ein einziger String-Wert, der sicher eingebettet werden kann.
Warum du das brauchst
JSON in ein anderes JSON-Feld einzubetten, JSON in einer String-Spalte einer Datenbank zu speichern oder JSON als Umgebungsvariable oder URL-Parameter zu übergeben — all das verlangt ein escapetes String-Literal.
Escape-Regeln
Doppelte Anführungszeichen werden mit Backslash escaped, Backslashes werden verdoppelt, und Steuerzeichen wie Zeilenumbruch oder Tab werden zu ihrer Zweizeichen-Escape-Sequenz. Das Ergebnis enthält keine echten Zeilenumbrüche.
Doppelt kodiertes JSON dekodieren
Bekommst du einen String, der mit einem escapeten Anführungszeichen beginnt und solche Sequenzen enthält, wurde er stringifiziert. Parse ihn einmal, um den inneren JSON-String zu erhalten, und dann erneut, um den eigentlichen Wert zu bekommen.
Wo Doppelkodierung auftaucht
Logging-Frameworks, die Context-Objekte serialisieren, Webhook-Payloads, die einen JSON-Body in einem 'body'-Feld kapseln, Message-Queues mit «JSON-als-String»-Umschlägen und Datenbankspalten vom Typ text oder varchar sind die häufigsten Quellen. Achte auf ein führendes Anführungszeichen plus eine gerade Anzahl Backslashes.
Mit eingebettetem JSON in Logs arbeiten
Strukturierte Logger stringifizieren Objekte oft, damit jede Log-Zeile ein einzelner Wert bleibt. Zum Inspizieren ziehst du die Zeile aus dem Log-Viewer, baust das Escaping mit JSON.parse zurück und formatierst dann das wiedergewonnene JSON. Greppe keine mehrzeiligen JSON-Objekte — auf eine Zeile stringifiziertes JSON ist viel leichter zu durchsuchen.
Werkzeuge für den Roundtrip
Browser-Konsole: JSON.parse(line) liefert das innere JSON, dann JSON.stringify(...,null,2) zum Pretty-Print. Node-CLI: 'node -e "console.log(JSON.parse(process.argv[1]))" "<line>"' macht beides. Das JSON-Stringify-Tool auf dieser Seite kümmert sich in einem Klick um beliebig tief verschachtelte Werte.
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
- 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 vor API-Anfragen validieren
- JSON-Formatter vs. JSON Repair
- JSON-Fehler «Unexpected Token» beheben
- JSON-zu-JavaScript-Objekt-Konverter