ToolDeck

JSON String Escape

JSON-Sonderzeichen in Strings escapen und unescapen

Beispiel ausprobieren

Eingabe

Ausgabe

Läuft lokal · Sicher zum Einfügen von Secrets
Ergebnis erscheint hier…

Was ist JSON-String-Escaping?

JSON-String-Escaping bezeichnet das Umwandeln von Sonderzeichen innerhalb eines Strings in Escape-Sequenzen, die JSON-Parser lesen können, ohne die Struktur zu beschädigen. Die JSON-Spezifikation (ECMA-404 / RFC 8259) schreibt vor, dass bestimmten Zeichen innerhalb von String-Werten ein Backslash vorangestellt wird. Ohne korrektes Escaping würde ein wörtliches doppeltes Anführungszeichen oder ein Zeilenumbruch innerhalb eines Strings den String vorzeitig beenden und einen Parse-Fehler erzeugen.

Jeder JSON-String wird durch doppelte Anführungszeichen begrenzt. Enthält der String selbst ein doppeltes Anführungszeichen, einen Backslash oder ein Steuerzeichen (U+0000 bis U+001F), muss das Zeichen durch seine Escape-Sequenz ersetzt werden. Ein wörtlicher Zeilenumbruch wird beispielsweise zu \n, ein Tabulator zu \t und ein doppeltes Anführungszeichen zu \". Jeder Unicode-Codepunkt kann außerdem als \uXXXX dargestellt werden, wobei XXXX der vierstellige Hexadezimalwert ist.

Unescaping (die umgekehrte Operation) wandelt diese Backslash-Sequenzen wieder in die ursprünglichen Zeichen um. Verwenden Sie es, wenn Sie einen JSON-Payload erhalten, in dem String-Werte doppelt maskiert sind, oder wenn Sie rohen Text aus einem JSON-Log-Eintrag für die Anzeige in einer Oberfläche oder einem Terminal extrahieren müssen. Log-Aggregations-Pipelines treffen dies ständig: Wenn eine JSON-kodierte Nachricht als String-Wert in einem anderen JSON-Dokument gespeichert wird, kommt jeder Backslash im inneren String doppelt an.

Warum ein JSON-Escape-Tool verwenden?

Backslashes manuell hinzuzufügen oder zu entfernen ist mühsam und fehleranfällig — besonders bei mehrzeiligem Text, Dateipfaden oder eingebetteten Code-Snippets. Ein dediziertes Escape-Tool erkennt Sonderfälle, die beim manuellen Bearbeiten übersehen werden.

🔒
Datenschutz-first-Verarbeitung
Ihre Strings verlassen niemals Ihren Browser. Alles Escapen und Unescapen läuft lokal in JavaScript ohne Server-Aufrufe — sensible Daten wie API-Keys oder Tokens bleiben auf Ihrem Gerät.
Sofortige Konvertierung
Fügen Sie beliebigen Text ein und erhalten Sie in Millisekunden korrekt escapten JSON-Output. Kein Warten auf einen Roundtrip zu einem Remote-Server.
🛡️
Kein Account, keine Installation
Seite öffnen und mit dem Escapen beginnen. Kein Anmeldeformular, keine Browser-Extension, kein CLI-Tool zum Installieren. Funktioniert auf jedem Gerät mit einem modernen Browser.
📋
Vollständige Zeichenabdeckung
Behandelt alle JSON-Pflichtescapes: doppelte Anführungszeichen, Backslashes, Steuerzeichen (U+0000 bis U+001F) und Unicode-Sequenzen einschließlich Emoji und CJK-Zeichen.

Anwendungsfälle für JSON-String-Escaping

Frontend-Entwicklung
Escapen Sie nutzergenerierte Inhalte, bevor Sie sie in einen JSON-Payload einbetten, der per fetch oder XMLHttpRequest gesendet wird. Verhindert fehlerhafte Requests, wenn Nutzer Anführungszeichen, Zeilenumbrüche oder Emoji eingeben.
Backend-API-Arbeit
Erstellen Sie JSON-Response-Bodies in Sprachen, die Strings nicht automatisch escapen (Shell-Skripte, gespeicherte SQL-Prozeduren, Template-Engines). Fügen Sie den Rohstring ein und kopieren Sie die gescapte Version.
DevOps und Konfiguration
Betten Sie mehrzeilige Zertifikat-PEM-Blöcke, SSH-Keys oder Shell-Skripte in JSON-Konfigurationsdateien für Terraform, CloudFormation oder Kubernetes ConfigMaps ein, ohne die JSON-Struktur zu beschädigen.
QA und Testing
Erstellen Sie Test-Fixtures mit Zeichen an Randfällen: Tabulatoren, Null-Bytes, Unicode-Surrogate-Paare und verschachtelte gescapte Strings. Überprüfen Sie, ob Ihr Parser sie korrekt verarbeitet.
Data Engineering
Bereinigen Sie doppelt gescapte Log-Einträge aus Elasticsearch, CloudWatch oder Datadog. Unescapen Sie den String, um die ursprüngliche Nachricht für die Analyse oder erneute Verarbeitung wiederherzustellen.
JSON lernen
Sehen Sie genau, welche Zeichen gemäß der JSON-Spezifikation escapt werden müssen. Nützlich für Entwickler, die sich mit ECMA-404 beschäftigen oder einen eigenen JSON-Parser entwickeln.

JSON-Escape-Sequenz-Referenz

Die JSON-Spezifikation definiert genau zwei Pflichtescapes (doppeltes Anführungszeichen und Backslash) sowie sechs kurze Escape-Sequenzen für häufige Steuerzeichen. Alle anderen Steuerzeichen (U+0000 bis U+001F) müssen die Form \uXXXX verwenden. Zeichen oberhalb von U+FFFF (wie Emoji) können als UTF-16-Surrogate-Paar dargestellt werden: \uD83D\uDE00.

ZeichenBeschreibungGescapte Form
"Double quote\"
\Backslash\\
/Forward slash\/ (optional)
\nNewline (LF)\n
\rCarriage return\r
\tTab\t
\bBackspace\b
\fForm feed\f
U+0000–U+001FControl characters\u0000–\u001F
U+0080+Non-ASCII (e.g. emoji)\uXXXX or raw UTF-8

JSON-Escaping vs. JSON-Kodierung

Entwickler verwechseln manchmal das Escapen eines Strings mit der Kodierung eines vollständigen JSON-Dokuments.

String-Escaping
Wirkt auf den Text innerhalb eines JSON-String-Werts. Ersetzt Sonderzeichen durch Backslash-Sequenzen, damit der String innerhalb der doppelten Anführungszeichen gültig bleibt. Eingabe: Rohtext. Ausgabe: gescapter Text (benötigt noch umgebende Anführungszeichen, um gültiges JSON zu sein).
JSON-Kodierung (Serialisierung)
Wandelt eine gesamte Datenstruktur (Objekte, Arrays, Zahlen, Boolesche Werte, Nulls) in eine JSON-Textdarstellung um. String-Escaping ist ein Schritt innerhalb dieses größeren Prozesses. Eingabe: eine Datenstruktur. Ausgabe: ein vollständiges JSON-Dokument.

Code-Beispiele

Jede gängige Programmiersprache verfügt über eingebaute Funktionen dafür. Beispiele in JavaScript, Python, Go und jq:

JavaScript (browser / Node.js)
// JSON.stringify escapes a value and wraps it in quotes
JSON.stringify('Line 1\nLine 2')       // → '"Line 1\\nLine 2"'

// To get just the inner escaped string (no surrounding quotes):
const escaped = JSON.stringify('She said "hello"').slice(1, -1)
// → 'She said \\"hello\\"'

// Parsing reverses the escaping
JSON.parse('"tabs\\tand\\nnewlines"')  // → 'tabs\tand\nnewlines'

// Handling Unicode: emoji in JSON
JSON.stringify('Price: 5\u20ac')       // → '"Price: 5\u20ac"' (raw euro sign)
Python
import json

# json.dumps escapes and quotes a string
json.dumps('Line 1\nLine 2')           # → '"Line 1\\nLine 2"'

# Ensure ASCII: replace non-ASCII with \uXXXX sequences
json.dumps('Caf\u00e9', ensure_ascii=True)   # → '"Caf\\u00e9"'

# Keep UTF-8 characters as-is (default in Python 3)
json.dumps('Caf\u00e9', ensure_ascii=False)  # → '"Caf\u00e9"'

# Unescape by round-tripping through json.loads
json.loads('"She said \\"hello\\""')      # → 'She said "hello"'
Go
package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// json.Marshal escapes a Go string for JSON
	raw := "Line 1\nLine 2\tindented"
	b, _ := json.Marshal(raw)
	fmt.Println(string(b))
	// → "Line 1\nLine 2\tindented"

	// Unescape with json.Unmarshal
	var out string
	json.Unmarshal([]byte(`"She said \"hello\""`), &out)
	fmt.Println(out)
	// → She said "hello"
}
CLI (jq)
# Escape a raw string into a JSON-safe value
echo 'Line 1
Line 2	with tab' | jq -Rs '.'
# → "Line 1\nLine 2\twith tab\n"

# Unescape a JSON string back to raw text
echo '"She said \"hello\""' | jq -r '.'
# → She said "hello"

Häufig gestellte Fragen

Welche Zeichen müssen in einem JSON-String escapt werden?
Die JSON-Spezifikation (RFC 8259) erfordert das Escapen des doppelten Anführungszeichens (\"), des Backslash (\\) und aller Steuerzeichen von U+0000 bis U+001F. Der Schrägstrich (/) darf als \/ escapt werden, ist aber optional. Alle anderen Unicode-Zeichen — einschließlich Nicht-ASCII-Text und Emoji — können ungeskapt erscheinen, solange das Dokument UTF-8-Kodierung verwendet.
Was ist der Unterschied zwischen JSON-Escaping und JSON.stringify()?
JSON.stringify() in JavaScript serialisiert einen vollständigen JavaScript-Wert in einen JSON-String, fügt umgebende doppelte Anführungszeichen hinzu und escapt Sonderzeichen darin. JSON-Escaping bezeichnet speziell den zeichenweisen Ersatz von Sonderzeichen durch Backslash-Sequenzen. Der Aufruf von JSON.stringify() auf einem String führt das Escaping als Teil des Serialisierungsprozesses durch.
Wie escape ich einen Zeilenumbruch in JSON?
Ersetzen Sie das wörtliche Zeilenumbruchzeichen (U+000A) durch die zweistellige Sequenz \n. Ebenso wird Wagenrücklauf (U+000D) zu \r. Wenn Sie JSON.stringify() oder json.dumps() in Python verwenden, erfolgen diese Ersetzungen automatisch.
Warum ist mein JSON-String doppelt gescapt?
Doppeltes Escaping tritt auf, wenn ein String zweimal serialisiert wird. Beim Aufruf von JSON.stringify() auf einem String, der bereits Escape-Sequenzen enthält, werden die Backslashes erneut gescapt: \n wird zu \\n. Um dies zu beheben, parsen Sie den String einmal mit JSON.parse() bevor Sie ihn erneut serialisieren, oder prüfen Sie Ihre Pipeline auf redundante Kodierungsschritte.
Kann ich einfache Anführungszeichen in JSON-Strings verwenden?
Nein. Die JSON-Spezifikation erfordert doppelte Anführungszeichen für alle String-Werte und Eigenschaftsnamen. Einfache Anführungszeichen sind kein gültiges JSON und verursachen einen Parse-Fehler. Wenn Ihre Quelldaten einfache Anführungszeichen enthalten, müssen diese innerhalb eines JSON-Strings in doppelten Anführungszeichen nicht gescapt werden, da einfache Anführungszeichen in diesem Kontext gewöhnliche Zeichen sind.
Ist es sicher, nicht gescapte UTF-8-Zeichen in JSON zu verwenden?
Ja, solange das JSON-Dokument in UTF-8 kodiert ist, was RFC 8259 als Standard und empfohlene Kodierung festlegt. Zeichen wie akzentuierte Buchstaben, CJK-Ideographen und Emoji können direkt im String erscheinen, ohne \uXXXX-Escaping. Einige ältere Systeme erwarten nur ASCII-kompatibles JSON; verwenden Sie in diesem Fall die Option ensure_ascii in Python oder ein ähnliches Flag in Ihrer Programmiersprache.
Wie escape ich Emoji in JSON?
Emoji oberhalb von U+FFFF werden in JSON als UTF-16-Surrogate-Paar dargestellt. Das lachende Gesicht (U+1F600) wird beispielsweise zu \uD83D\uDE00. Die meisten Serializer behandeln dies automatisch. Wenn Sie JSON von Hand schreiben oder Ihr Tooling nur die Basic Multilingual Plane unterstützt, verwenden Sie die Surrogate-Paar-Notation. Andernfalls fügen Sie das Emoji direkt als UTF-8-Zeichen ein.