Fare escape del JSON come letterale stringa (e decodificare JSON doppiamente codificato)
Lo stringify di JSON lo racchiude tra virgolette e fa l’escape delle virgolette interne e dei caratteri speciali, producendo un letterale stringa JSON adatto a essere incorporato altrove.
Cosa significa «stringify a un literal»
Passare una stringa JSON a JSON.stringify la racchiude tra virgolette doppie e fa l’escape di virgolette e backslash interni, producendo un singolo valore stringa adatto a essere incorporato.
Perché serve
Incorporare JSON dentro un altro campo JSON, salvare JSON in una colonna di tipo stringa, oppure passare JSON tramite variabile d’ambiente o parametro URL richiede un letterale stringa con escape.
Regole di escape
Le virgolette doppie si escapano con un backslash, i backslash si raddoppiano, e caratteri di controllo come a capo e tab diventano sequenze di escape a due caratteri. Il risultato non contiene alcun a capo non escapato.
Decodificare JSON con codifica doppia
Se ricevi una stringa che inizia con una virgoletta escapata e contiene sequenze di virgolette escapate, è stata stringify-ata. Falle un parse per ottenere la stringa JSON interna, e un secondo parse per ottenere il valore vero.
Dove compare la codifica doppia
Framework di logging che serializzano oggetti di contesto, payload di webhook che incapsulano un corpo JSON dentro un campo 'body', code di messaggi che inviano «buste JSON-as-string» e colonne di database di tipo text o varchar sono le sorgenti più comuni. Cerca una virgoletta iniziale seguita da un numero pari di backslash.
Lavorare con JSON incorporato nei log
I logger strutturati spesso stringify-ano gli oggetti per tenere ogni riga su un singolo valore. Per ispezionare, prendi la riga dal log viewer, togli l’escape con JSON.parse e poi formatta il JSON ottenuto. Evita di grep-pare un oggetto JSON multilinea — un JSON stringify-ato su una sola riga è molto più facile da cercare.
Strumenti per il round-trip
Console del browser: JSON.parse(line) restituisce il JSON interno, poi JSON.stringify(...,null,2) lo abbellisce. CLI Node: 'node -e "console.log(JSON.parse(process.argv[1]))" "<line>"' fa entrambi i passi. Lo strumento JSON Stringify di questo sito gestisce annidamenti di profondità arbitraria con un click.
Guide alla riparazione di JSON
Hub tematici
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guide specifiche
- Come decodificare stringhe Base64 (e payload JWT)
- Codifica URL: codifica in percentuale parametri di query e percorsi
- Convertire YAML in JSON (ed evitare errori di indentazione)
- Convertire JSON in CSV: appiattire un array di oggetti
- Convertire JSON in XML: radice, attributi e array
- Correggere le virgole finali nel JSON
- Correggere gli apici singoli nel JSON
- Correggere chiavi senza virgolette nel JSON
- Riparare il JSON prodotto da un LLM
- Correggere l’errore di parse JSON: Expected Property Name
- JSON vs letterale di oggetto JavaScript
- Valida il JSON prima delle richieste API
- Formattatore JSON vs JSON Repair
- Correggere errori JSON Unexpected Token
- Convertitore JSON in oggetto JavaScript