ToolDeck

JSON String Escape

Escape och unescape specialtecken i JSON-strängar

Prova ett exempel

Inmatning

Utmatning

Körs lokalt · Säkert att klistra in hemligheter
Resultatet visas här…

Vad är JSON string escaping?

JSON string escaping är processen att konvertera specialtecken inuti en sträng till escape-sekvenser som JSON-parsers kan läsa utan att bryta strukturen. JSON-specifikationen (ECMA-404 / RFC 8259) kräver att vissa tecken inuti strängvärden föregås av ett omvänt snedstreck. Utan korrekt escaping skulle ett bokstavligt dubbelt citattecken eller en radbrytning inuti en sträng avsluta strängen i förtid och orsaka ett parsningsfel.

Varje JSON-sträng avgränsas av dubbla citattecken. När strängen själv innehåller ett dubbelt citattecken, ett omvänt snedstreck eller ett kontrolltecken (U+0000 till U+001F), måste tecknet ersättas av dess escape-sekvens. Till exempel blir en bokstavlig radbrytning \n, ett tabbtecken blir \t och ett dubbelt citattecken blir \". Alla Unicode-kodpunkter kan också representeras som \uXXXX, där XXXX är det fyrsiffriga hexadecimala värdet.

Unescaping (den omvända operationen) konverterar dessa omvänt-snedstrecks-sekvenser tillbaka till de ursprungliga tecknen. Använd det när du tar emot en JSON-nyttolast där strängvärden är dubbel-escapade, eller när du behöver extrahera råtext från en JSON-loggpost för visning i ett gränssnitt eller en terminal. Loggaggregationspipelines stöter på detta hela tiden: när ett JSON-kodat meddelande lagras som ett strängvärde inuti ett annat JSON-dokument anländer varje omvänt snedstreck i den inre strängen fördubblat.

Varför använda ett JSON escape-verktyg?

Att manuellt lägga till eller ta bort omvända snedstreck är omständligt och felbenäget, särskilt när man hanterar flerradstext, filsökvägar eller inbäddade kodsnuttar. Ett dedikerat escape-verktyg fångar upp specialfall som manuell redigering missar.

🔒
Integritetsfokuserad hantering
Dina strängar lämnar aldrig din webbläsare. All escaping och unescaping körs lokalt i JavaScript utan serveranrop, så känsliga data som API-nycklar eller tokens stannar på din dator.
Omedelbar konvertering
Klistra in valfri text och få korrekt escapad JSON-utmatning på millisekunder. Ingen väntan på ett svar från en fjärrserver.
🛡️
Inget konto eller installation
Öppna sidan och börja escapa. Inget registreringsformulär, ingen webbläsartillägg, inget CLI-verktyg att installera. Fungerar på alla enheter med en modern webbläsare.
📋
Full teckentäckning
Hanterar alla JSON-obligatoriska escapes: dubbla citattecken, omvända snedstreck, kontrolltecken (U+0000 till U+001F) och Unicode-sekvenser inklusive emoji och CJK-tecken.

Användningsfall för JSON string escape

Frontend-utveckling
Escapa användargenererat innehåll innan det bäddas in i en JSON-nyttolast som skickas via fetch eller XMLHttpRequest. Förhindrar felaktiga förfrågningar när användare skriver citattecken, radbrytningar eller emoji.
Backend API-arbete
Bygg JSON-svarskroppar i språk som inte auto-escapar strängar (skalskript, lagrade SQL-procedurer, mallmotorer). Klistra in råsträngen, kopiera den escapade versionen.
DevOps och konfiguration
Bädda in flerraders PEM-block för certifikat, SSH-nycklar eller skalskript i JSON-konfigurationsfiler för Terraform, CloudFormation eller Kubernetes ConfigMaps utan att bryta JSON-strukturen.
QA och testning
Skapa testfixtures som innehåller kantfallstecken: tabbar, nollbyte, Unicode-surrogat par och nästlade escapade strängar. Verifiera att din parser hanterar dem korrekt.
Datateknik
Rensa dubbel-escapade loggposter från Elasticsearch, CloudWatch eller Datadog. Unescape strängen för att återfå det ursprungliga meddelandet för analys eller återinmatning.
Lära sig JSON
Se exakt vilka tecken som kräver escaping enligt JSON-specifikationen. Användbart för studenter som arbetar med ECMA-404 eller bygger sin egen JSON-parser.

Referens för JSON escape-sekvenser

JSON-specifikationen definierar exakt två obligatoriska escapes (dubbelt citattecken och omvänt snedstreck) och sex korta escape-sekvenser för vanliga kontrolltecken. Alla andra kontrolltecken (U+0000 till U+001F) måste använda formen \uXXXX. Tecken ovanför U+FFFF (som emoji) kan representeras som ett UTF-16-surrogat par: \uD83D\uDE00.

TeckenBeskrivningEscapad 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-kodning

Utvecklare förväxlar ibland escaping av en sträng med kodning av ett helt JSON-dokument.

String escaping
Verkar på texten inuti ett JSON-strängvärde. Ersätter specialtecken med omvänt-snedstrecks-sekvenser så att strängen förblir giltig inom dubbla citattecken. Inmatning: råtext. Utmatning: escapad text (behöver fortfarande omgivande citattecken för att vara giltig JSON).
JSON-kodning (serialisering)
Konverterar hela en datastruktur (objekt, arrayer, tal, booleska värden, null-värden) till en JSON-textrepresentation. String escaping är ett steg i denna större process. Inmatning: en datastruktur. Utmatning: ett komplett JSON-dokument.

Kodexempel

Alla stora programspråk har inbyggda funktioner för detta. Exempel i JavaScript, Python, Go och 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"

Vanliga frågor

Vilka tecken måste escapas i en JSON-sträng?
JSON-specifikationen (RFC 8259) kräver escaping av det dubbla citattecknet (\"), det omvända snedstrecket (\\) och alla kontrolltecken från U+0000 till U+001F. Det enkla snedstrecket (/) kan escapas som \/ men detta är valfritt. Alla andra Unicode-tecken, inklusive icke-ASCII-text och emoji, kan förekomma utan escaping så länge dokumentet använder UTF-8-kodning.
Vad är skillnaden mellan JSON escape och JSON stringify?
JSON.stringify() i JavaScript serialiserar ett helt JavaScript-värde till en JSON-sträng, lägger till omgivande dubbla citattecken och escapar specialtecken inuti. JSON escaping syftar specifikt på teckennivå-ersättning av specialtecken med omvänt-snedstrecks-sekvenser. Att anropa JSON.stringify() på en sträng utför escaping som en del av serialiseringsprocessen.
Hur escapar jag en radbrytning i JSON?
Ersätt det bokstavliga radbrytnings-tecknet (U+000A) med tvåteckenssekvensen \n. På liknande sätt blir vagnretur (U+000D) \r. Om du använder JSON.stringify() eller json.dumps() i Python sker dessa ersättningar automatiskt.
Varför är min JSON-sträng dubbel-escapad?
Dubbel-escaping sker när en sträng serialiseras två gånger. Till exempel kommer anrop av JSON.stringify() på en sträng som redan innehåller escape-sekvenser att escapa de omvända snedstrecken igen: \n blir \\n. För att åtgärda detta, parsa strängen en gång med JSON.parse() innan du serialiserar om, eller kontrollera din pipeline för redundanta kodningssteg.
Kan jag använda enkla citattecken i JSON-strängar?
Nej. JSON-specifikationen kräver dubbla citattecken för alla strängvärden och egenskapsnamn. Enkla citattecken är inte giltig JSON och orsakar ett parsningsfel. Om dina källdata innehåller enkla citattecken behöver de inte escapas inuti en JSON-sträng med dubbla citattecken eftersom enkla citattecken är vanliga tecken i det sammanhanget.
Är det säkert att använda oescapade UTF-8-tecken i JSON?
Ja, så länge JSON-dokumentet är kodat i UTF-8, vilket RFC 8259 anger som standardkodning och den rekommenderade kodningen. Tecken som accenterade bokstäver, CJK-ideogram och emoji kan förekomma direkt i strängen utan \uXXXX-escaping. Vissa äldre system förväntar sig JSON med enbart ASCII; i så fall använder du alternativet ensure_ascii i Python eller en liknande flagga i ditt programspråk.
Hur escapar jag emoji i JSON?
Emoji ovanför U+FFFF representeras i JSON med ett UTF-16-surrogat par. Till exempel blir det leende ansiktet (U+1F600) \uD83D\uDE00. De flesta serialiserare hanterar detta automatiskt. Om du skriver JSON för hand eller ditt verktyg bara stödjer det grundläggande flerspråkiga planet, använd surrogat par-notationen. Annars kan du inkludera emoji direkt som ett UTF-8-tecken.