Vai al contenuto
Case Converter Online
it

Da stringa JSON a testo (JSON unstringify)

Incolla una stringa JSON piena di barre rovesciate e ritrova il testo o il JSON originale, formattato e leggibile.

Incolla una stringa JSON con escape, oppure premi Esempio. Funziona tutto nel tuo browser.

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

  1. Incolla la stringa con escape nel riquadro a sinistra, premi Apri file, oppure premi Esempio.
  2. Il risultato compare a destra mentre scrivi.
  3. 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’è.
  4. 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 \r di 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.

JSON unstringify: domande e risposte

Devo includere le virgolette esterne?

No. Lo strumento accetta la stringa con o senza le virgolette doppie che la racchiudono. Se da un log o da un campo hai copiato solo l'interno della stringa, incollalo così com'è.

Cos'è una stringa JSON codificata due volte?

È JSON trasformato in stringa due volte, quindi pieno di sequenze come \\\". Succede spesso quando un servizio applica lo stringify a dati che erano già una stringa. Con Decodifica stringhe annidate attiva, lo strumento continua a togliere gli escape finché non arriva al contenuto vero.

Perché ricevo un errore su una virgoletta doppia senza escape?

Dentro una stringa JSON, ogni virgoletta doppia va scritta come \". Se una non lo è, la stringa finisce prima del previsto e il resto non può essere letto. Il messaggio indica la colonna di quella virgoletta.

I miei dati vengono inviati da qualche parte?

No. La decodifica avviene nel tuo browser, quindi righe di log e payload con dati riservati restano sul tuo dispositivo.

Altri strumenti per codice e dati

Vedi tutti gli strumenti