ToolDeck

Escape Stringhe JSON

Esegui escape e unescape dei caratteri speciali JSON nelle stringhe

Prova un esempio

Input

Output

Esegue in locale · Sicuro per incollare segreti
Il risultato apparirà qui…

Cos'è l'escape delle stringhe JSON?

L'escape delle stringhe JSON è il processo di conversione dei caratteri speciali all'interno di una stringa in sequenze di escape che i parser JSON possono leggere senza rompere la struttura. La specifica JSON (ECMA-404 / RFC 8259) richiede che determinati caratteri all'interno dei valori stringa siano preceduti da un backslash. Senza un escape corretto, un doppio apice o un'andata a capo letterale all'interno di una stringa terminerebbe la stringa prematuramente e produrrebbe un errore di parsing.

Ogni stringa JSON è delimitata da doppi apici. Quando la stringa stessa contiene un doppio apice, un backslash o un carattere di controllo (da U+0000 a U+001F), il carattere deve essere sostituito dalla sua sequenza di escape. Ad esempio, un'andata a capo letterale diventa \n, una tabulazione diventa \t e un doppio apice diventa \". Qualsiasi punto di codice Unicode può essere rappresentato anche come \uXXXX, dove XXXX è il valore esadecimale a quattro cifre.

L'unescape (l'operazione inversa) converte quelle sequenze backslash nei caratteri originali. Usalo quando ricevi un payload JSON in cui i valori stringa sono doppiamente sottoposti a escape, o quando hai bisogno di estrarre testo grezzo da una voce di log JSON per visualizzarla in un'interfaccia o in un terminale. Le pipeline di aggregazione dei log si imbattono continuamente in questo problema: quando un messaggio codificato in JSON è memorizzato come valore stringa all'interno di un altro documento JSON, ogni backslash nella stringa interna arriva raddoppiato.

Perché usare uno strumento di escape JSON?

Aggiungere o rimuovere backslash manualmente è tedioso e soggetto a errori, specialmente con testo su più righe, percorsi di file o frammenti di codice incorporati. Uno strumento dedicato intercetta i casi limite che la modifica manuale lascia sfuggire.

🔒
Elaborazione privacy-first
Le tue stringhe non lasciano mai il browser. Tutto l'escape e l'unescape viene eseguito localmente in JavaScript senza chiamate al server, quindi i dati sensibili come chiavi API o token rimangono sulla tua macchina.
Conversione istantanea
Incolla qualsiasi testo e ottieni l'output JSON correttamente sottoposto a escape in millisecondi. Nessuna attesa per un round trip verso un server remoto.
🛡️
Nessun account o installazione
Apri la pagina e inizia a fare l'escape. Nessun modulo di registrazione, nessuna estensione del browser, nessuno strumento CLI da installare. Funziona su qualsiasi dispositivo con un browser moderno.
📋
Copertura completa dei caratteri
Gestisce tutti gli escape richiesti da JSON: doppi apici, backslash, caratteri di controllo (da U+0000 a U+001F) e sequenze Unicode inclusi emoji e caratteri CJK.

Casi d'uso dell'escape stringhe JSON

Sviluppo frontend
Esegui l'escape dei contenuti generati dall'utente prima di incorporarli in un payload JSON inviato via fetch o XMLHttpRequest. Previene richieste malformate quando gli utenti digitano apici, andate a capo o emoji.
Lavoro con API backend
Costruisci body di risposta JSON in linguaggi che non eseguono l'escape automatico delle stringhe (script shell, stored procedure SQL, motori di template). Incolla la stringa grezza, copia la versione con escape.
DevOps e configurazione
Incorpora blocchi PEM di certificati multi-riga, chiavi SSH o script shell in file di configurazione JSON per Terraform, CloudFormation o Kubernetes ConfigMap senza rompere la struttura JSON.
QA e testing
Crea fixture di test che includono caratteri limite: tabulazioni, byte null, coppie surrogate Unicode e stringhe con escape annidati. Verifica che il tuo parser li gestisca correttamente.
Data engineering
Pulisci le voci di log doppiamente sottoposte a escape da Elasticsearch, CloudWatch o Datadog. Esegui l'unescape della stringa per recuperare il messaggio originale per l'analisi o la re-ingestione.
Imparare JSON
Scopri esattamente quali caratteri richiedono l'escape secondo la specifica JSON. Utile per chi studia ECMA-404 o sta costruendo un proprio parser JSON.

Riferimento delle sequenze di escape JSON

La specifica JSON definisce esattamente due escape obbligatori (doppio apice e backslash) e sei sequenze di escape brevi per i caratteri di controllo più comuni. Tutti gli altri caratteri di controllo (da U+0000 a U+001F) devono usare la forma \uXXXX. I caratteri sopra U+FFFF (come gli emoji) possono essere rappresentati come coppia surrogata UTF-16: \uD83D\uDE00.

CarattereDescrizioneForma con escape
"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

Escape JSON vs. codifica JSON

Gli sviluppatori a volte confondono l'escape di una stringa con la codifica di un documento JSON completo.

Escape delle stringhe
Opera sul testo all'interno di un valore stringa JSON. Sostituisce i caratteri speciali con sequenze backslash affinché la stringa rimanga valida tra doppi apici. Input: testo grezzo. Output: testo con escape (necessita ancora dei doppi apici circostanti per essere JSON valido).
Codifica JSON (serializzazione)
Converte un'intera struttura dati (oggetti, array, numeri, booleani, null) in una rappresentazione testuale JSON. L'escape delle stringhe è un passaggio all'interno di questo processo più ampio. Input: una struttura dati. Output: un documento JSON completo.

Esempi di codice

Ogni linguaggio principale dispone di funzioni integrate per questo. Esempi in JavaScript, Python, Go e 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"

Domande frequenti

Quali caratteri devono essere sottoposti a escape in una stringa JSON?
La specifica JSON (RFC 8259) richiede l'escape del doppio apice (\"), del backslash (\\) e di tutti i caratteri di controllo da U+0000 a U+001F. Lo slash (/) può essere sottoposto a escape come \/ ma è facoltativo. Tutti gli altri caratteri Unicode, incluso il testo non ASCII e gli emoji, possono apparire senza escape purché il documento utilizzi la codifica UTF-8.
Qual è la differenza tra escape JSON e JSON stringify?
JSON.stringify() in JavaScript serializza un intero valore JavaScript in una stringa JSON, aggiungendo i doppi apici circostanti ed eseguendo l'escape dei caratteri speciali al suo interno. L'escape JSON si riferisce specificamente alla sostituzione a livello di carattere dei caratteri speciali con sequenze backslash. Chiamare JSON.stringify() su una stringa esegue l'escape come parte del processo di serializzazione.
Come si esegue l'escape di un'andata a capo in JSON?
Sostituisci il carattere di andata a capo letterale (U+000A) con la sequenza di due caratteri \n. Allo stesso modo, il ritorno a capo (U+000D) diventa \r. Se usi JSON.stringify() o json.dumps() in Python, queste sostituzioni avvengono automaticamente.
Perché la mia stringa JSON è doppiamente sottoposta a escape?
Il doppio escape si verifica quando una stringa viene serializzata due volte. Ad esempio, chiamare JSON.stringify() su una stringa che contiene già sequenze di escape effettuerà nuovamente l'escape dei backslash: \n diventa \\n. Per correggere questo, esegui il parsing della stringa una volta con JSON.parse() prima di serializzarla di nuovo, oppure controlla se nella tua pipeline ci sono passaggi di codifica ridondanti.
Posso usare apici singoli nelle stringhe JSON?
No. La specifica JSON richiede doppi apici per tutti i valori stringa e i nomi delle proprietà. Gli apici singoli non sono JSON valido e causano un errore di parsing. Se i tuoi dati di origine contengono apici singoli, non richiedono escape all'interno di una stringa JSON tra doppi apici perché gli apici singoli sono caratteri normali in quel contesto.
È sicuro inserire caratteri UTF-8 non sottoposti a escape in JSON?
Sì, purché il documento JSON sia codificato in UTF-8, che RFC 8259 specifica come codifica predefinita e raccomandata. Caratteri come lettere accentate, ideogrammi CJK ed emoji possono apparire direttamente nella stringa senza l'escape \uXXXX. Alcuni sistemi più datati si aspettano JSON solo ASCII; in quel caso, usa l'opzione ensure_ascii in Python o un flag equivalente nel tuo linguaggio.
Come si esegue l'escape degli emoji in JSON?
Gli emoji sopra U+FFFF sono rappresentati in JSON usando una coppia surrogata UTF-16. Ad esempio, la faccina sorridente (U+1F600) diventa \uD83D\uDE00. La maggior parte dei serializzatori gestisce questo automaticamente. Se stai scrivendo JSON a mano o il tuo tooling supporta solo il Piano Multilingue Base, usa la notazione con coppia surrogata. Altrimenti, includi l'emoji direttamente come carattere UTF-8.