Was dieses Werkzeug tut
Ein JSON-String-Literal wird zu dem Text, den es darstellt. "caf\u00e9" ergibt café, "zwei\nZeilen" ergibt zwei Zeilen, und "\ud83d\ude00" ergibt das Emoji — ein Surrogatpaar ist ein Zeichen, nicht zwei kaputte Hälften.
Die Anführungszeichen sind optional
Beide Formen funktionieren:
"caf\u00e9"
caf\u00e9
Das ist Absicht. Eine JSON-Zeichenkette kommt selten mit intakten Anführungszeichen an: man kopiert sie aus einer Logzeile, einem git diff, einem Stacktrace, einer Fehlermeldung, die nur das Innere zitiert hat. Die Anführungszeichen zu verlangen hieße, sie jedes Mal von Hand zu ergänzen.
Der Preis ist klein und wird klar benannt: eine nackte Eingabe, die zufällig gültiges JSON anderer Art ist — [1,2], null — wird als Text gelesen, denn genau das bedeutet ein nacktes Fragment hier. Nur eine Eingabe in Anführungszeichen wird als Literal geparst.
Eine Ablehnung sagt was und wo
Eine Eingabe, die keine JSON-Zeichenkette ist, wird abgelehnt statt halb dekodiert, und die Meldung nennt die Ursache:
| Eingabe | Meldung |
|---|---|
a"b | Unescaped quotation mark at position 1: write it as \" |
"ab\q" | Unknown escape "\q" at position 3 |
"a\u12" | Invalid \u escape at position 2: four hexadecimal digits expected |
"abc | The opening quotation mark has no closing quotation mark |
{"a":1} | Expected a JSON string, found a JSON object |
Positionen zählen ab null und beziehen sich auf den Text, den Sie eingefügt haben — die Zahl führt Sie zum Zeichen.
Das ist erwähnenswert, weil es vorher anders war: jeder dieser Fälle erzeugte die eine Meldung Invalid JSON string escape sequence. Ein eingefügtes Objekt ist kein Escaping-Fehler, und das Gegenteil gesagt zu bekommen schickt Sie an die falsche Stelle. Das war ein echter Mangel dieses Werkzeugs, beim Schreiben dieser Seite gefunden und behoben.
Es wird nichts geraten
Ein unbekanntes Escape ist ein Fehler, kein Zeichen. \q ist kein gültiges JSON, und zu entscheiden, es habe „wohl q gemeint“, gäbe Ihnen einen Text zurück, der sich unmerklich von dem der Quelle unterscheidet — die Art Unterschied, die drei Systeme später auftaucht.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.