Formattare, convalidare e minificare JSON
Incolla il tuo JSON: lo strumento lo controlla all’istante, indica il punto esatto dell’errore con una spiegazione e restituisce il risultato formattato o minificato, pronto da copiare. Niente viene caricato su un server.
Come si calcola
Cosa controlla lo strumento
Il riferimento è la RFC 8259, lo standard internet per JSON (equivalente a ECMA-404). Lo strumento legge il tuo testo carattere per carattere con un proprio analizzatore e si ferma alla prima violazione. Il messaggio indica riga e colonna, segnala il punto con un ^ e spiega il problema – in modo identico in ogni browser, perché i messaggi integrati di JSON.parse cambiano da un browser all’altro e spesso sono poco chiari (“Unexpected token”).
Gli errori JSON più comuni
- Virgola finale dopo l’ultimo elemento:
{"a": 1,}– accettata in JavaScript, non valida in JSON. - Apici singoli o chiavi senza virgolette:
{'a': 1},{a: 1}– la forma corretta è{"a": 1}. - Commenti (
//,/* */): non esistono in JSON. - Valori di JavaScript o Python:
undefined,NaN,Infinity,True,None– sono ammessi solotrue,falseenull. - Numeri: niente zero iniziale (
012), niente+1, niente.5o5., niente esadecimale (0x1F). Il separatore decimale è sempre il punto, mai la virgola. - Stringhe: un a capo o una tabulazione si scrivono come
\no\t, una singola barra rovesciata come\\(tipico nei percorsi Windows). - Caratteri invisibili: uno spazio unificatore (U+00A0) copiato da Word o da una pagina web non è uno spazio valido in JSON – tranello frequente con testi in italiano.
Formattare, minificare, ordinare
L’uscita viene ricostruita a partire dal contenuto convalidato: Formatta indenta ogni livello con 2 o 4 spazi o una tabulazione, Minifica rimuove tutti gli spazi facoltativi (file più leggero). Numeri e stringhe restano esattamente come scritti – a differenza di JSON.parse + JSON.stringify, 1.0 non diventa 1 e 12345678901234567890 non viene arrotondato. Ordina dispone le chiavi per unità di codice Unicode, come previsto dal JSON Canonicalization Scheme (RFC 8785): maiuscole prima delle minuscole, lettere accentate (à, è, ù…) dopo entrambe.
Avvisi, non errori
Le chiavi duplicate nello stesso oggetto non sono vietate dalla RFC 8259, ma sono inaffidabili: la maggior parte dei programmi conserva solo l’ultimo valore. Un BOM (byte order mark) all’inizio del testo può essere ignorato da chi legge il file – lo strumento lo ignora e te lo segnala.
Limiti
Lo strumento verifica la sintassi, non il significato: se mancano campi obbligatori o i tipi sono corretti è compito di un JSON Schema. Le colonne contano i caratteri Unicode a partire da 1 (una tabulazione = 1 carattere); un editor con tabulazioni larghe 4 mostrerà una colonna più alta. L’input è limitato a 5 milioni di caratteri e 1.000 livelli di annidamento.
Domande frequenti
Il mio JSON viene inviato o salvato da qualche parte?
No. Convalida e formattazione avvengono interamente nel tuo browser. Il testo non finisce nella barra degli indirizzi e non viene salvato – nel link restano solo le opzioni scelte (uscita, indentazione, ordinamento).
Perché commenti e virgole finali non sono ammessi?
JSON è volutamente minimale, così ogni linguaggio di programmazione lo legge allo stesso modo. Commenti e virgole finali appartengono a estensioni come JSON5 o JSONC (usato ad esempio nelle impostazioni di VS Code) – come JSON puro, quei file non sono validi.
Il mio JSON è valido, ma il programma lo rifiuta comunque: perché?
Di solito il contenuto non corrisponde a quanto si aspetta il programma: un campo obbligatorio mancante, un numero al posto di una stringa o una struttura diversa. Questo lo descrive un JSON Schema o la documentazione dell’API. Controlla anche l’avviso sulle chiavi duplicate.
Riga e colonna corrispondono al mio editor?
Le righe sempre. Le colonne contano i caratteri a partire da 1; una tabulazione conta come un carattere, così come un’emoji. Un editor che mostra le tabulazioni larghe 4 colonne indicherà un numero più alto. “Vai all’errore” posiziona il cursore esattamente nel punto giusto.
Come trovo il problema dopo “fine imprevista”?
Manca quasi sempre una } o una ] di chiusura, oppure una virgoletta. Il messaggio indica la riga della parentesi mai chiusa – guarda per prima cosa la fine di quel blocco.
Fonti e riferimenti normativi
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
Aggiornato al:
Strumenti correlati
- Validatore XML e CSV onlineControlla se un XML è ben formato e valida un CSV secondo la RFC 4180: errori con riga e colonna, delimitatore rilevato, anteprima tabella. Tutto in locale.
- Tester regexTesta espressioni regolari JavaScript in tempo reale: corrispondenze evidenziate, gruppi di cattura in tabella, pattern spiegato. Gratis, nulla viene inviato.
- Codifica e decodifica Base64Codifica e decodifica Base64 e Base64url con UTF-8 corretto, più URL encode/decode (percent-encoding). Errori chiari, tutto in locale nel tuo browser.
- Generatore di hash: SHA-256, SHA-512, SHA-1, MD5Calcola gli hash SHA-256, SHA-384, SHA-512, SHA-1 e MD5 di un testo o di un file e verifica un checksum – in locale nel browser, senza upload, gratis.
- Generatore UUID: crea e verifica UUID v4 e v7Genera UUID online: versione 4 (casuale) o versione 7 (ordinata nel tempo), fino a 1000 alla volta. Verifica un UUID e leggi versione, variante e data.
- Convertitore di timestamp UnixConverti un timestamp Unix in data e viceversa: rileva automaticamente secondi, millisecondi, micro e nanosecondi; mostra UTC, ora locale, ISO 8601 e altro.