Online-JSON-Escape-Tool (JSON Escape / Unescape / Unicode)
Online-JSON-Escape-Tool (JSON Escape / Unescape / Unicode): Anführungszeichen und Backslashes maskieren, optional in Unicode umwandeln und JSON validieren
Wie funktioniert das JSON-Escape-Tool? JSON sicher in eine weitere JSON-Ebene einfügen
Ein JSON-Escape-Tool wandelt Anführungszeichen, Backslashes, Zeilenumbrüche und andere Sonderzeichen in JSON-Text in Escape-Sequenzen um oder stellt diese Sequenzen wieder her.
Inhalt einfügen und Escape oder Unescape auswählen. Zusätzlich kann geprüft werden, ob das JSON syntaktisch gültig ist. Die gesamte Verarbeitung erfolgt lokal im Browser.
Wann muss JSON maskiert werden?
Wenn ein JSON-Dokument als Zeichenkette in einem anderen JSON-Feld gespeichert werden soll, etwa in einem Payload-Feld, Logfeld oder Nachrichtenkörper, müssen die Anführungszeichen des inneren JSON maskiert werden. Andernfalls kann der äußere Parser die Zeichenkette am ersten nicht maskierten Anführungszeichen beenden, wodurch eine fehlerhafte Struktur oder fehlende Felder entstehen. Dasselbe gilt beim Speichern von JSON in CSV-Dateien, Konfigurationsdateien oder SQL-Anweisungen.
Ein weiterer häufiger Fall ist das direkte Einfügen von Benutzereingaben in eine JSON-Zeichenkette. Werden Anführungszeichen und Backslashes nicht maskiert, kann die Analyse fehlschlagen oder sogar die Datenstruktur verändern, sodass eigentlich als Text gedachte Inhalte zu zusätzlichen Feldern werden. Wenn eine Zeichenkette eine weitere Zeichenkette enthält, sollte der innere Inhalt vor dem Erstellen des äußeren Werts maskiert werden.
Welche Zeichen müssen tatsächlich maskiert werden?
Dazu gehören doppelte Anführungszeichen, Backslashes, Zeilenumbrüche, Wagenrückläufe, Tabulatoren und Steuerzeichen unter 0x20. Chinesische Zeichen, Emoji und andere druckbare Zeichen müssen in modernem JSON nicht maskiert werden und können direkt als UTF-8 gespeichert werden. Nicht-ASCII-Zeichen sollten nur dann in Backslash-u-Escapes umgewandelt werden, wenn ein reiner ASCII-Transport oder die Kompatibilität mit älteren Systemen erforderlich ist.
Sind Unicode-Escapes und JSON-Escapes dasselbe?
Nicht vollständig. Ein Unicode-Escape wandelt ein Zeichen in eine Codepoint-Darstellung um und arbeitet auf der Ebene der Zeichendarstellung. JSON-Escaping fügt Backslashes zu Zeichen hinzu, die andernfalls die JSON-Syntax beeinträchtigen könnten. In der Praxis können beide Verfahren kombiniert werden: zuerst das syntaktische Escaping und anschließend optional die Umwandlung von Nicht-ASCII-Zeichen in Unicode-Escapes. Das Werkzeug stellt beide Funktionen getrennt bereit, damit der gewünschte Escaping-Grad kontrolliert werden kann.
Warum schlägt Unescape häufig fehl?
Häufige Ursachen sind ein einzelner Backslash oder eine ungültige Escape-Sequenz, ein zweites Unescape nachdem der Inhalt bereits von einer äußeren Ebene verarbeitet wurde und nicht maskierte Zeilenumbrüche in Text, der zeilenweise verarbeitet wird. Bei einem Fehler sollte zuerst die Eingabe validiert werden, um die Position des Problems zu finden. Danach kann entschieden werden, ob die Escape-Sequenz repariert oder zurückgewandelt werden soll.
Können Validierung und Escaping gemeinsam verwendet werden?
Ja, aber die Reihenfolge ist wichtig. Zuerst die vollständige JSON-Struktur validieren und danach maskieren. Wird zuerst maskiert, sieht der äußere Parser eine Zeichenkette statt eines JSON-Objekts, wodurch das Validierungsergebnis von der Erwartung abweichen kann. Das Werkzeug stellt Validierung und Escaping als getrennte Vorgänge bereit, damit gültiges JSON nicht mit einer gültigen JSON-Zeichenkette verwechselt wird.
Verhindert Escaping XSS?
Es ist nur eine Schutzschicht. Das Maskieren von spitzen Klammern und kaufmännischen Und-Zeichen kann das Risiko verringern, dass Inhalte beim Einfügen in eine HTML-Seite als HTML interpretiert werden. Ein vollständiger XSS-Schutz basiert jedoch auf serverseitiger Ausgabekodierung und Content-Security-Policy. Das Escaping dieses Werkzeugs dient in erster Linie dazu, die Integrität der Daten bei Übertragung und Speicherung zu erhalten.
Wie maskiert man verschachteltes JSON, ohne die Syntax zu beschädigen?
Wenn JSON als Zeichenkette in einem anderen JSON-Dokument gespeichert werden soll, müssen die Anführungszeichen des inneren JSON maskiert werden. Andernfalls kann der äußere Parser die Zeichenkette am ersten Anführungszeichen beenden und fehlende Felder oder einen Syntaxfehler erzeugen. Dieses Werkzeug verarbeitet Anführungszeichen, Backslashes, Zeilenumbrüche, Wagenrückläufe und Tabulatoren nach den JSON-Syntaxregeln und kann Nicht-ASCII-Zeichen optional in Unicode-Escapes umwandeln.
Escaping, Unescaping und Syntaxvalidierung sind getrennte Vorgänge, damit gültiges JSON nicht mit einer gültigen JSON-Zeichenkette verwechselt wird.
- Das Escaping umfasst doppelte Anführungszeichen, Backslashes, Zeilenumbrüche, Wagenrückläufe, Tabulatoren und Steuerzeichen unter 0x20.
- Chinesische und andere Nicht-ASCII-Zeichen können optional für reinen ASCII-Transport und die Kompatibilität mit älteren Systemen in Unicode-Escapes umgewandelt werden.
- Unescape stellt maskierte Anführungszeichen und Zeilenumbrüche als lesbaren JSON-Text wieder her.
- Die integrierte JSON-Syntaxvalidierung zeigt die Fehlerposition an, damit Probleme vor der Auswahl der Escaping-Richtung lokalisiert werden können.
- Spitze Klammern und kaufmännische Und-Zeichen können optional maskiert werden, um das Risiko einer HTML-Interpretation zu verringern.
- Die gesamte Verarbeitung erfolgt lokal im Browser, eingegebene Inhalte werden nicht auf den Server hochgeladen und eine Registrierung ist nicht erforderlich.