Formattazione JSON

Formatta, comprime e convalida il JSON. Potete scegliere il rientro per renderlo leggibile oppure comprimerlo su una sola riga, e verificare all'istante gli errori di sintassi.

JSON in ingresso
Risultato formattato JSON valido JSON non valido
{{ result.lines }} righe / {{ result.bytes.toLocaleString() }} byte
{{ result.error }}

Consigli

  • Le chiavi del JSON, cioè della notazione degli oggetti di JavaScript, devono sempre essere racchiuse fra virgolette doppie: quelle semplici non sono ammesse.
  • La virgola finale, come in {"a":1,}, non è valida secondo la specifica JSON: attenzione, perché in questo il formato differisce dai vettori e dagli oggetti di JavaScript.
  • Anche la notazione esponenziale, come 1.5e3, è un numero JSON valido, mentre NaN e Infinity non lo sono.
  • Le virgolette doppie all'interno di una stringa vanno protette scrivendo \"; per l'andata a capo si usa \n e per la tabulazione \t.
  • La versione compressa riduce la dimensione del file ma azzera la leggibilità: conviene per le risposte delle interfacce e per il trasferimento dei dati, mentre per i file di configurazione è preferibile la versione formattata.

Domande frequenti

JSON è la specifica di un formato di scambio dati ed è un sottoinsieme della notazione letterale degli oggetti di JavaScript. Le differenze principali sono tre: le chiavi richiedono sempre le virgolette doppie, la virgola finale non è ammessa e non si possono usare undefined, le funzioni, NaN e Infinity.

No: la specifica non prevede alcuna sintassi per i commenti. Se vi servono, valutate formati alternativi come JSON5, la variante con commenti usata nei file di configurazione di certi editori, oppure YAML.

La norma RFC 8259 stabilisce che il JSON usi la codifica UTF-8. Alcune implementazioni funzionano tecnicamente anche con UTF-16 e UTF-32, ma per l'interoperabilità si raccomanda UTF-8.

Nella specifica non c'è distinzione: esiste un unico tipo numerico. Quasi tutti i linguaggi, però, li convertono in interi o in numeri in virgola mobile, e gli interi molto grandi, oltre il massimo intero sicuro di JavaScript, possono perdere precisione.
Tool-kun

A proposito — perché JSON ha prevalso su XML

All'inizio degli anni Duemila il formato dominante per i dati delle interfacce web era XML. Nel 2001, però, Douglas Crockford propose JSON, che dagli anni Dieci è diventato lo standard di fatto. La ragione è semplice: JSON è più leggero, più maneggevole in JavaScript e più leggibile da una persona.

Rappresentando gli stessi dati in XML e in JSON, quest'ultimo occupa spesso dal trenta al cinquanta per cento di byte in meno. All'epoca delle connessioni mobili lente, quella differenza si traduceva direttamente nella prontezza di risposta delle applicazioni.

Sulla ripetizione delle chiavi la norma RFC 8259 si limita a dire che «non si dovrebbe», senza vietarla esplicitamente: {"a":1,"a":2} è quindi sintatticamente valido ma di comportamento indefinito. Nella pratica quasi tutti gli analizzatori conservano l'ultimo valore, ma una chiave ripetuta resta una fonte di difetti imprevisti.