CodeKitHub
Strumenti JSON

Formattatore e validatore JSON online

Ultimo aggiornamento:

Incolla il tuo JSON qui sotto per formattarlo, ottimizzarne la leggibilità o minimizzarlo all'istante. Lo strumento verifica la validità del tuo JSON mentre lo formatta e mostra l'errore esatto se c'è qualcosa che non va. Tutto avviene localmente nel tuo browser: i tuoi dati non vengono mai caricati su alcun server.

Come si usa

  1. Incolla il tuo JSON nella casella di immissione a sinistra (oppure clicca su "Carica esempio" per provarlo).
  2. Scegli un rientro di 2 o 4 spazi.
  3. Fai clic su "Formatta" per abbellirlo, oppure su "Minimizza" per comprimerlo in una sola riga.
  4. Se il JSON non è valido, leggi il messaggio di errore riportato sotto i campi per individuare il problema.
  5. 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.

Strumenti correlati