JSON Escape & Unescape: Verschachtelte Daten korrekt verarbeiten
2024-04-15
Queues, Logs und DB-Spalten enthalten oft JSON als String innerhalb von JSON. Wer Escape-Sequenzen versteht, kann solche Payloads zuverlässig entpacken.
Zeichen, die escaped werden müssen
In Strings müssen ", \\ und Steuerzeichen wie \n oder \t escaped werden.
{
"quote": "He said \"Hello\"",
"path": "C:\\temp\\data"
}JSON als verschachtelter String
Zuerst die äußere Ebene parsen, dann JSON.parse auf das innere String-Feld anwenden.
{ "payload": "{\"id\":1,\"name\":\"Alice\"}" }Doppelte Escapes in Logs
Backslashes nicht manuell zählen, sondern wiederholt parsen, bis ein Objekt oder der erwartete End-String erreicht ist.
Sicheres Unescaping
Verwende JSON.parse statt Regex-Ersetzungen. Nach dem Parsen untrusted Daten strukturell validieren (z. B. __proto__-Schlüssel).
Andere Kontexte (SQL, Shell)
JSON-Escaping ist nicht dasselbe wie SQL- oder Shell-Quoting. Objekte bauen, JSON.stringify nutzen und danach kontextspezifisch escapen.
Empfohlener Workflow
Einfügen -> parsen -> formatieren -> innere Parse-Schritte auf verbleibende String-Felder -> fachliche Validierung.