RevealTheme logo

Formattatore e validatore di JSON

Formatta, abbellisce, valida e minifica JSON. Si esegue interamente nel suo browser, quindi i suoi dati non lasciano mai il suo dispositivo.

Come usare questo strumento

  1. 1

    Incolla il tuo JSON nel campo di input.

  2. 2

    Fai clic su Formatta per visualizzarlo con indentazione e leggibile, oppure su Minifica per rimuovere gli spazi.

  3. 3

    Gli errori indicano la riga e la colonna esatte in cui l'analisi non è riuscita.

  4. 4

    Copia il risultato negli appunti.

Che cos'è JSON e perché è importante formattarlo?

JSON (JavaScript Object Notation) è la lingua franca delle moderne API web, dei file di configurazione e della registrazione strutturata degli eventi. Ogni API REST e GraphQL restituisce JSON; ogni package.json, tsconfig.json e la maggior parte delle configurazioni CI sono JSON; AWS, GCP e Azure parlano JSON nelle loro CLI. Il punto di forza di JSON è la sua grammatica minima: sei caratteri strutturali ({}, [], virgola, due punti, virgolette), quattro tipi primitivi (stringa, numero, booleano e null) e annidamento ricorsivo. Questo minimalismo è anche il suo inconveniente: JSON non ammette commenti, né virgole finali, né chiavi senza virgolette, né stringhe su più righe. Una sola virgoletta o virgola fuori posto rompe l'intero documento. Questo strumento convalida l'input secondo la RFC 8259 (la specifica di JSON) e poi lo presenta con un'indentazione coerente per la lettura, oppure rimuove tutti gli spazi vuoti per la trasmissione in rete. L'analisi e la formattazione si eseguono interamente nel suo browser tramite le funzioni native JSON.parse e JSON.stringify del motore JavaScript, lo stesso codice che gira sui server Node.js e in tutti i browser. Questo significa che i suoi dati non viaggiano mai sulla rete e che il comportamento di validazione qui corrisponde esattamente a quello che vedrà il suo codice in produzione.

Casi d'uso comuni

  • Esegui il debug delle risposte API incollandole nel formattatore: vedi all'istante la struttura che il JSON minificato nasconde.

  • Convalida il JSON prima di inviarlo a un consumatore rigoroso (AWS CloudFormation, manifest di Kubernetes, ecc.).

  • Formatta in modo leggibile i log delle librerie di logging strutturato (Pino, Bunyan) che emettono JSON su una sola riga.

  • Minifica i file di configurazione prima di incorporarli in HTML o variabili d'ambiente (più piccoli, meno byte da analizzare).

  • Formatta i payload dei JSON Web Token dopo averli decodificati da base64.

  • Confronta due risposte API formattandole entrambe e calcolandone le differenze.

Domande frequenti

Il mio JSON esce dal browser?
No. Tutta l'analisi e la formattazione avvengono nel suo browser tramite le funzioni integrate JSON.parse e JSON.stringify. I dati non raggiungono mai un server né compaiono nei log. È sicuro da usare con risposte API che contengono token, dati dei clienti o altri segreti.
Posso formattare JSON5 o JSONC (con commenti)?
No: questo strumento segue la specifica rigorosa di JSON (RFC 8259). I commenti e le virgole finali sono errori di sintassi e produrranno un messaggio di errore del parser. Per le varianti flessibili di JSON, utilizzi un parser JSON5 come json5.org, oppure faccia passare il suo input attraverso un preprocessore che rimuova prima i commenti.
Quale dimensione di indentazione dovrei usare?
2 spazi è la convenzione di JavaScript e del web, ed è la più universale. 4 spazi è il valore predefinito dell'ecosistema Python (coincide con l'indentazione di PEP 8). Le tabulazioni vengono rappresentate in modo incoerente tra i vari editor e rompono gli strumenti di confronto; le eviti, a meno che il suo team non abbia una rigorosa convenzione di tabulazione. La scelta è puramente estetica; ai parser non interessa.
Perché è importante il JSON minificato?
Il JSON minificato risparmia byte, cosa significativa su larga scala (per esempio, un'API pubblica che restituisce 100 KB di dati a milioni di richieste). Per i piccoli file di configurazione (di pochi KB), la differenza è trascurabile. I tempi di analisi del browser sono identici per il JSON formattato e quello minificato, quindi l'unica ragione per minificare è la larghezza di banda.
Come interpreto i messaggi di errore?
I messaggi di errore di JSON.parse di JavaScript includono la posizione (scostamento dall'inizio) in cui l'analisi è fallita. Errori comuni: 'Unexpected token' indica di solito una virgoletta o una virgola mancante, oppure un carattere speciale senza escape. 'Unexpected end of JSON input' significa che il documento è troncato. 'Unexpected non-whitespace character' indica spesso una virgola finale.
Posso formattare file JSON molto grandi?
Il JSON.parse del browser gestisce file fino a circa 100 MB prima che le prestazioni diventino problematiche. Per file più grandi, utilizzi jq da riga di comando: può elaborare in streaming file JSON di dimensioni arbitrariamente grandi.
Qual è la differenza tra JSON e gli oggetti letterali di JavaScript?
JSON è un sottoinsieme rigoroso della sintassi degli oggetti letterali di JavaScript. Differenze: le chiavi JSON devono essere stringhe tra virgolette doppie (JS consente chiavi senza virgolette e virgolette singole); JSON vieta commenti, virgole finali e undefined; JSON non ha espressioni, chiamate di funzione né valori calcolati. JavaScript può valutare JSON in modo sicuro; JSON non può valutare JavaScript arbitrario.

Strumenti correlati