Come si usa
- Incolla il tuo JSON nella casella di immissione a sinistra (oppure clicca su "Carica esempio" per provarlo).
- Scegli un rientro di 2 o 4 spazi.
- Fai clic su "Formatta" per abbellirlo, oppure su "Minimizza" per comprimerlo in una sola riga.
- Se il JSON non è valido, leggi il messaggio di errore riportato sotto i campi per individuare il problema.
- Fai clic su "Copia" per copiare il risultato negli appunti.
Esempio
Input
{"name":"CodeKitHub","tools":["json","base64"],"free":true}Risultato
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}Gli stessi dati, formattati con un’indentazione di 2 spazi. Minify fa il contrario: rimuove tutti gli spazi bianchi.
Che cos'è questo strumento?
Un formattatore JSON prende un testo JSON grezzo, minificato o disordinato e lo riscrive con indentazioni e interruzioni di riga coerenti, in modo da renderlo facilmente leggibile. Il JSON (JavaScript Object Notation) è il formato di dati più comune utilizzato dalle API, dai file di configurazione e dai sistemi di log, ma i server solitamente lo inviano come un’unica lunga riga illeggibile per risparmiare larghezza di banda.
Questo strumento funge anche da validatore JSON: analizza il testo inserito applicando le stesse rigide regole utilizzate dai browser, quindi se nel tuo JSON manca una virgola, una chiave non racchiusa tra virgolette o è presente una virgola finale, vedrai il messaggio di errore esatto invece di un errore silenzioso.
Il JSON è definito formalmente da due standard allineati, l'RFC 8259 e l'ECMA-404 — e la specifica è volutamente più rigorosa di JavaScript stesso, motivo per cui uno snippet che gira senza problemi come codice JS può comunque non superare la validazione JSON rigorosa qui.
Consigli pratici
- Stai eseguendo il debug di un'API? Incolla prima la risposta grezza, poi formattala: il validatore individua con precisione la riga e la colonna esatte di qualsiasi problema di sintassi, il che è molto meglio che strizzare gli occhi per decifrare un blocco di testo di una sola riga.
- Utilizza un rientro di 2 spazi per la lettura su schermo e comprimi il codice prima di incollare il JSON in un URL, in una variabile d'ambiente o in un messaggio di chat: in quei contesti gli spazi bianchi occupano solo byte.
- I commenti in stile JSON5 e le virgole finali sono i due motivi più comuni per cui una configurazione scritta a mano “sembra corretta” ma non supera la validazione: lo standard JSON rigoroso non ammette né l’uno né l’altro.
- Per i file di grandi dimensioni (log, dump di database), formattate solo la parte che vi interessa: in questo modo l'editor rimane reattivo e la struttura è più facile da seguire.
Come si inserisce tutto questo nei flussi di lavoro reali
Il flusso più comune che osserviamo è il seguente: un'API restituisce un JSON codificato in Base64 o minificato all'interno di un token o del payload di un webhook. Decodifica prima il Base64, poi formatta il JSON e infine confronta le due risposte quando qualcosa è cambiato tra gli ambienti. Per ogni fase è disponibile uno strumento dedicato e i tuoi payload non escono mai dal browser in nessuna di queste fasi.
Gli sviluppatori frontend ricorrono alla minificazione con la stessa frequenza con cui utilizzano la formattazione: devi distribuire un file JSON statico di grandi dimensioni? Minificarlo consente in genere di risparmiare il 20-30% di spazio prima ancora che gzip entri in azione.
→ Codificatore/Decodificatore Base64 · Differenze tra i testi
Casi d'uso comuni
- Leggere una risposta API minificata restituita come un’unica riga illeggibile, per comprenderne la struttura durante il debug.
- Verifica di un file di configurazione (come un file `package.json` o un file di impostazioni basato su JSON) che, per ragioni sconosciute, non viene letto correttamente da un'applicazione.
- Condivisione di un frammento di codice JSON leggibile e formattato in una segnalazione di bug, in una revisione del codice o nella documentazione.
- Ridurre un payload JSON alla sua forma più compatta prima di incorporarlo in un parametro URL o di memorizzarlo in una colonna di un database con limiti di dimensione.
JSON vs altri formati di configurazione
JSON non è l'unico formato per dati strutturati e capire quando usarlo aiuta a evitare frustrazioni inutili durante lo sviluppo.
- JSON contro YAML: YAML ammette commenti e una sintassi più leggibile a mano (usato spesso in GitHub Actions o Docker Compose), ma è sensibile all'indentazione con spazi; JSON è più verboso ma inequivocabile e nativo di JavaScript.
- JSON contro XML: XML supporta attributi e namespace, utile per documenti legacy o SOAP, ma è molto più prolisso; JSON resta lo standard per le API REST moderne.
- JSON contro JSON5/JSONC: questi formati estendono JSON con commenti e virgole finali per una migliore esperienza di editing manuale (VS Code li usa per i propri file di settings), ma non sono validi per JSON.parse() né per la maggior parte delle API — motivo per cui questo validatore li rifiuta di proposito.
- Se un progetto ti chiede sia un tsconfig.json (JSONC) sia un package.json (JSON puro), ricorda che solo il secondo passerà la validazione rigorosa mostrata qui.
Perché usarlo?
Un endpoint PagoPA o SPID ti restituisce un errore 400 come un'unica riga illeggibile: incollalo qui per vedere subito quale campo ha fallito, invece di scorrere un muro di testo.
Il deploy su Vercel o Netlify fallisce con "Unexpected token in JSON at position 214" e nessun altro indizio: incolla il file e l'errore ti mostra riga e colonna esatte.
Devi incorporare un oggetto di configurazione in un tag script o inviarlo tramite un'API con banda limitata: minificalo prima, così risparmi ogni byte inutile.
Il JSON che stai analizzando contiene dati di clienti o chiavi API di un progetto interno: tutto gira in locale, quindi nulla viene caricato su un server terzo solo per essere letto.
Stai revisionando la pull request di un collega con un fixture JSON minificato e illeggibile: formattalo qui prima, così il diff su GitHub ha finalmente un senso.
Nessuna barriera di registrazione tra te e lo strumento: aprilo dal telefono durante un incidente di produzione fuori orario e funziona esattamente allo stesso modo.
Domande frequenti
I miei dati JSON vengono caricati su un server?
No. Questo strumento funziona interamente nel browser tramite JavaScript. I tuoi file JSON non lasciano mai il tuo dispositivo, il che lo rende sicuro da utilizzare con dati sensibili o interni.
Perché il mio JSON non è valido?
Le cause più comuni sono: virgole mancanti o in eccesso, chiavi prive di virgolette doppie, virgolette singole al posto di quelle doppie, virgole finali dopo l'ultimo elemento e commenti (JSON non ammette commenti). Il messaggio di errore visualizzato sotto la casella di immissione indica cosa ha rilevato il parser.
Qual è la differenza tra "Format" e "Minify"?
La funzione "Format" aggiunge rientri e interruzioni di riga per rendere il JSON leggibile dall'utente. La funzione "Minify" rimuove tutti gli spazi bianchi superflui per ridurre al minimo le dimensioni del JSON: utile prima di trasmetterlo o incorporarlo.
C'è un limite di dimensioni?
Lo strumento non impone alcun limite rigido. I file di grandi dimensioni (decine di megabyte) potrebbero richiedere più tempo a caricarsi a seconda del dispositivo utilizzato, poiché l'elaborazione avviene interamente in locale nel browser.
Questo strumento è in grado di correggere automaticamente i file JSON danneggiati?
No — lo strumento ti indica esattamente dove si trova l'errore nel JSON in modo che tu possa correggerlo, ma non modifica né altera i tuoi dati. Si tratta di una scelta intenzionale: "correggere" i dati in modo silenzioso può nascondere dei veri e propri bug.
Supporta JSON5 o JSONC (commenti, virgole finali, chiavi senza virgolette)?
No, ed è voluto: questo strumento valida secondo lo standard rigoroso RFC 8259, quello richiesto realmente dalle tue API e da JSON.parse(). Se devi formattare un file JSONC come tsconfig.json, rimuovi prima i commenti oppure il parser li segnalerà come errori.
In cosa è diverso da JSON.stringify nella console del browser?
JSON.stringify(JSON.parse(x), null, 2) fa la stessa riformattazione, ma ti serve la console aperta e restituisce un errore generico poco utile su input non valido, invece di indicare riga e colonna precise come fa questo strumento.
Funziona con JSON molto annidato, come le risposte GraphQL?
Sì — non c'è un limite artificiale di profondità, solo il limite pratico della memoria del browser e di quanto vuoi scorrere. Le strutture profondamente annidate sono proprio dove la formattazione aiuta di più: in una riga sola diventano illeggibili oltre 3-4 livelli.
C'è un limite di compatibilità con i browser?
No, lo strumento usa solo JSON.parse() e API canvas/DOM standard supportate da qualunque browser moderno (Chrome, Firefox, Safari, Edge) degli ultimi anni, incluse le versioni mobile su iOS e Android.