JSON formatter e validatore
Incolla un JSON qualsiasi nel campo qui sopra e questo JSON formatter e validatore JSON online lo controlla mentre scrivi. L’input valido viene formattato con l’indentazione che scegli oppure minificato in una sola riga. L’input non valido riceve un errore preciso con riga e colonna, un estratto evidenziato e, per gli errori più comuni, una correzione con un clic. Tutto avviene nel tuo browser, quindi risposte API, file di configurazione ed esportazioni non lasciano mai il tuo computer.
Cosa fa questo JSON formatter
- Formatta JSON con 2 spazi, 4 spazi o tabulazioni. L’output mantiene l’ordine originale delle chiavi, a meno che tu non attivi Ordina chiavi.
- Minifica JSON eliminando ogni spazio e ogni a capo. L’indicatore della dimensione sotto il risultato mostra quanti byte hai risparmiato.
- Valida JSON in tempo reale secondo la RFC 8259, lo standard JSON attuale. La riga di stato diventa verde appena il documento è corretto.
- Correggi gli errori comuni in automatico: virgole finali, apici singoli, chiavi senza virgolette, commenti,
True,NoneeNaNin stile Python, numeri come.5o+1. - Carica file con il pulsante Apri file o trascinando un file
.jsonsul campo di input, poi scarica il risultato o rimandalo nell’input per un altro passaggio.
Validatore JSON: perché il messaggio di errore conta più del colore rosso
La maggior parte dei validatori online si limita a dire che qualcosa non va. I browser non fanno molto meglio: JSON.parse in Chrome segnala Unexpected token } in JSON at position 148, mentre Firefox dice expected property name or '}', e nessuno dei due ti indica quale riga guardare. Questo strumento ha un proprio parser che ricorda dove inizia ogni token. Quando si ferma, ottieni riga e colonna, un estratto di quella riga con un segno ^ sotto il carattere che causa il problema e un suggerimento in parole semplici, per esempio Probabilmente manca una virgola tra due proprietà. Il pulsante Vai all’errore porta il cursore direttamente in quel punto dell’input.
Gli errori più frequenti che vediamo nei documenti incollati:
| Input | Problema | JSON corretto |
|---|---|---|
{'name': 'Ada'} | apici singoli | {"name": "Ada"} |
{name: "Ada"} | chiave senza virgolette | {"name": "Ada"} |
[1, 2, 3,] | virgola finale | [1, 2, 3] |
{"a": 1 "b": 2} | virgola mancante | {"a": 1, "b": 2} |
{"ok": True} | letterale Python | {"ok": true} |
{"x": 007} | zero iniziale | {"x": 7} o {"x": "007"} |
// comment | commento | non ammesso in JSON |
Il pulsante Correggilo per me sistema tutti questi casi tranne la virgola mancante e lo zero iniziale. La correzione è volutamente prudente: non prova mai a indovinare dove vada una virgola mancante, perché inserirla nel punto sbagliato cambia il significato dei dati, e 007 potrebbe essere inteso come il numero 7 oppure come un codice. In questi casi ottieni invece la posizione esatta.
Numeri grandi, ordine delle chiavi e altre cose che di solito si rompono
Molti formatter funzionano chiamando JSON.parse e poi JSON.stringify. Questo passaggio di andata e ritorno danneggia i dati senza avvisare. Un ID di Twitter o Snowflake come 1234567890123456789 supera il limite di 2^53 dei numeri JavaScript e torna indietro come 1234567890123456800. Il valore 1.0 diventa 1 e 1e3 diventa 1000. Questo formatter non converte mai i numeri in virgola mobile. Copia ogni letterale esattamente come è stato scritto, quindi l’output è una riformattazione fedele dell’input e non una sua reinterpretazione. Lo stesso vale per le sequenze di escape nelle stringhe: "\u00e9" resta "\u00e9" e non viene trasformato in "é".
Anche l’ordine delle chiavi viene mantenuto. La specifica JSON dice che i membri di un oggetto non hanno un ordine, ma file di configurazione, fixture di test e code review si leggono molto meglio quando l’ordine è stabile. Se preferisci una forma canonica, per esempio per confrontare due risposte API in uno strumento di diff, attiva Ordina chiavi ed entrambi i documenti elencheranno le proprietà in ordine alfabetico a ogni livello di annidamento.
Formattare JSON o minificare JSON: quando usare cosa
Il JSON formattato è pensato per le persone. Usalo quando esamini una risposta API, scrivi un package.json, un tsconfig.json o un documento OpenAPI, oppure quando salvi delle fixture in un repository dove i diff devono mostrare una modifica per riga. Due spazi sono la convenzione nel mondo JavaScript, quattro spazi sono comuni nei progetti Python e .NET, e le tabulazioni permettono a ogni lettore di scegliere la larghezza che preferisce.
Il JSON minificato è pensato per le macchine. Gli spazi occupano in genere dal 20 al 40 per cento di un documento formattato, quindi eliminarli riduce i payload inviati ai browser, i valori salvati in Redis o in una colonna di database e gli attributi data-* incorporati nell’HTML. Gzip recupera una parte di questa differenza, ma la versione minificata si comprime comunque in un risultato più piccolo. L’indicatore della dimensione sotto il risultato mostra la differenza esatta per il tuo documento.
Lavorare con JSON nel terminale e negli editor
Per i file che elabori spesso, uno strumento da riga di comando è più veloce di qualsiasi sito. jq . file.json formatta, jq -c . file.json minifica e python -m json.tool file.json funziona ovunque sia installato Python. Visual Studio Code formatta il JSON con Shift+Alt+F e lo valida rispetto a uno schema quando aggiungi una proprietà $schema. Questa pagina serve per tutti gli altri casi: una risposta copiata dalla scheda Rete degli strumenti per sviluppatori, una riga di log, un frammento di configurazione preso da un wiki o un controllo veloce su un computer dove non puoi installare nulla.
Strumenti correlati su questo sito: l’encoder e decoder Base64 decodifica la parte payload di un JWT, che è JSON codificato in Base64url. Il convertitore di timestamp Unix trasforma i numeri createdAt presenti nella maggior parte delle risposte API in date leggibili, e il decodificatore UUID ti dice la versione e il timestamp degli identificatori nei tuoi dati. Trovi altri strumenti nella categoria strumenti per sviluppatori.
Domande frequenti
Il mio JSON viene caricato su un server?
No. Analisi, formattazione e correzione avvengono interamente nel tuo browser, in JavaScript. Una volta caricata la pagina puoi disattivare la rete e lo strumento continua a funzionare. Nulla viene registrato o salvato.Perché il validatore rifiuta i commenti se il mio editor li accetta?
I commenti sono stati tolti da JSON di proposito dal suo autore, Douglas Crockford, per evitare che il formato venisse usato per inserire direttive destinate al parser. File cometsconfig.json o .vscode/settings.json sono tecnicamente JSONC, un superset di JSON supportato dagli editor. I parser rigorosi di API, database e della maggior parte dei linguaggi di programmazione li rifiutano. Il pulsante di correzione elimina i commenti, così il risultato è valido ovunque.
Posso formattare JSON Lines o più oggetti insieme?
Un documento JSON contiene esattamente un valore. Se incolli più oggetti separati da virgole o da a capo, il validatore si ferma al primo valore in più. Racchiudili tra parentesi quadre per creare un array, poi formatta. Il pulsante di correzione non lo fa in automatico, perché non può sapere se l'input doveva essere un unico documento.Qual è la dimensione massima?
Non c'è un limite fisso. Documenti di qualche megabyte vengono formattati in molto meno di un secondo su un portatile. Oltre circa 400 kB l'evidenziazione della sintassi si disattiva per mantenere la pagina reattiva, ma copia e download continuano a funzionare.Ordinare le chiavi modifica i dati?
No. Per definizione gli oggetti JSON non hanno un ordine, come spiega la voce su JSON di Wikipedia, quindi un parser legge il documento ordinato e quello originale come lo stesso valore. Gli array non vengono mai riordinati, perché il loro ordine fa parte dei dati.Come faccio l'escape di un JSON per inserirlo in una stringa?
Prima minificalo, poi fai l'escape di ogni barra rovesciata e di ogni virgoletta doppia. Molti linguaggi lo fanno direttamente:JSON.stringify(JSON.stringify(obj)) in JavaScript o json.dumps(json.dumps(obj)) in Python producono una stringa JSON che contiene il testo JSON.