Cosa significa togliere lo stringify
Passare da stringa JSON a testo vuol dire annullare gli escape. Quando un JSON viene salvato dentro una stringa, ogni virgoletta doppia diventa \", ogni a capo \n e ogni barra rovesciata \\. Lo vedi nei file di log, nelle code di messaggi, nei payload dei webhook, negli strumenti per sviluppatori del browser e nelle colonne di database che contengono JSON come testo. È valido, ma difficile da leggere:
"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"
Togliere lo stringify annulla gli escape e ti restituisce il valore originale. Se quel valore è JSON, lo strumento lo formatta anche, così puoi leggerlo.
Come si usa
- Incolla la stringa con escape nel riquadro a sinistra, premi Apri file, oppure premi Esempio.
- Il risultato compare a destra mentre scrivi.
- Imposta le opzioni:
- Decodifica stringhe annidate continua quando il risultato è a sua volta un’altra stringa con escape. È attiva di default.
- Se il risultato è JSON ti fa scegliere un rientro di 2 o 4 spazi, oppure Lascia com’è.
- Premi Copia, oppure Scarica per salvare il risultato in un file di testo.
La riga sotto i riquadri dice se il risultato è JSON valido e quanti livelli di escape sono stati tolti.
Esempi
La stringa qui sopra, con Se il risultato è JSON impostato su 2 spazi, diventa:
{
"name": "Ada",
"tags": [
"admin",
"dev"
]
}
Funziona anche il testo con escape senza virgolette esterne. Questo input:
Line one\nLine two\t(tabbed)
dà due righe, con una vera tabulazione prima di (tabbed):
Line one
Line two (tabbed)
Gli escape Unicode vengono decodificati. "Café 東京" diventa Café 東京, e allo stesso modo "Città" diventa Città.
Stringhe codificate due volte
A volte i dati passano per lo stringify due volte, e le barre rovesciate si accumulano:
"\"{\\\"event\\\":\\\"signup\\\",\\\"user\\\":7}\""
Con Decodifica stringhe annidate attiva, lo strumento toglie entrambi i livelli e riporta “Decodificati 2 livelli.” Con Lascia com’è selezionato, il risultato è:
{"event":"signup","user":7}
Con Decodifica stringhe annidate disattivata, si ferma dopo un livello e vedi la stringa interna, ancora con gli escape:
"{\"event\":\"signup\",\"user\":7}"
Ti è utile quando vuoi vedere esattamente cosa conteneva ogni livello.
Messaggi di errore
Se l’input non è una stringa JSON valida, ricevi la riga e la colonna del problema. Esempi reali:
| Input | Messaggio |
|---|---|
"bad \q escape" |
Riga 1, colonna 6: Sequenza di escape non valida \q |
He said "hi" |
Riga 1, colonna 9: Trovata una virgoletta doppia non scritta come \" |
"unterminated |
Riga 1, colonna 1: Stringa non chiusa: manca la virgoletta doppia di chiusura |
Il JSON ammette solo questi escape: \", \\, \/, \b, \f, \n, \r, \t e \u seguito da quattro cifre esadecimali. Gli escape di altri linguaggi, come \x41 o \', non sono JSON valido. Premi Mostra nell’input per andare al problema.
Come funziona
Lo strumento legge l’input come una stringa letterale JSON, aggiungendo le virgolette esterne se mancano. Decodifica gli escape secondo le regole del JSON. Se il risultato inizia con una virgoletta doppia ed è a sua volta una stringa JSON valida, e Decodifica stringhe annidate è attiva, decodifica di nuovo. Infine, se il risultato è un oggetto o un array JSON, lo formatta con il rientro che hai scelto. I numeri al suo interno restano esattamente come sono scritti. Tutto avviene nel tuo browser.
Consigli
- Se il risultato non è JSON valido, viene mostrato come testo semplice, ed è corretto per le stringhe che non sono mai state JSON.
- Copia il valore direttamente dalla riga di log, virgolette comprese, per non perdere un carattere a uno dei due estremi.
- Se nel risultato trovi caratteri
\rdi troppo, il testo originale aveva gli a capo di Windows.
Altri modi per farlo
JavaScript. JSON.parse(str) decodifica un livello. Richiamalo sul risultato per un valore codificato due volte, poi usa JSON.stringify(value, null, 2) per formattarlo.
Python. json.loads(s) decodifica una stringa JSON. Per una stringa codificata due volte, chiamalo due volte.
jq. jq -r . file.json stampa una stringa JSON come testo grezzo, e jq 'fromjson' analizza una stringa che contiene JSON.
Strumenti correlati
Per fare il contrario e trasformare un testo in una stringa JSON con escape, usa lo strumento da testo a stringa JSON. Per convalidare o riformattare il risultato, usa il formattatore JSON. Per trasformarlo in YAML, usa il convertitore da JSON a YAML.