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 }}

Che cosa fa un formattatore di JSON

Un formattatore di JSON prende del JSON compresso in una sola riga e lo distende di nuovo con i rientri, oppure fa il contrario: toglie gli spazi e lo riporta su un’unica riga. Poiché in entrambi i casi deve analizzare l’ingresso, le dice per giunta se la sintassi regge, sicché incollare una risposta di API o un file di configurazione le porta insieme formattazione, compressione e verifica. Il rientro si sceglie fra due spazi, quattro spazi o una tabulazione.

A giudicare è l’analizzatore JSON del browser stesso, perciò non incontrerà lo scarto per cui una cosa passa qui e fallisce nel suo ambiente di esecuzione. Tutto avviene nel suo apparecchio: il JSON che incolla non viene mai inviato a un server. Anche una risposta che porti un token di autenticazione o dati personali si può riordinare senza che nulla lasci la macchina.

Come si usa il formattatore di JSON

  1. Incolli il JSON Lo incolli nel riquadro d’ingresso a sinistra. Se non ha nulla sottomano, il pulsante di esempio carica un campione.
  2. Scelga il rientro Opti per due spazi, quattro o una tabulazione. Adeguandolo alle regole del suo progetto, potrà reincollare il risultato senza ritocchi.
  3. Controlli il contrassegno valido/non valido Cambia mentre digita. Se il JSON non è valido, compare così com’è il messaggio d’errore dell’analizzatore, sicché può seguire a quale riga e a quale carattere si è arrestato.
  4. Copi il risultato formattato o quello compresso «Copia formattato» porta negli appunti il risultato con i rientri; «copia compresso», l’unica riga priva di spazi.
  5. Legga il conteggio di righe e byte Le righe si contano sul risultato formattato, i byte su quello compresso, misurati in UTF-8. Per stimare quanto trasferirà, si attenga al secondo.

Consigli per sfruttarlo al meglio

  • 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.

Dove il formattatore di JSON è utile

Leggere una risposta di API

Formatti una risposta giunta su una sola riga e la profondità dell’annidamento come il numero di elementi di ciascun array diventano seguibili a occhio. È di gran lunga l’uso più frequente, tanto nello sviluppo quanto nella caccia a un difetto.

Individuare un errore di sintassi in un file di configurazione

Quando un’applicazione si rifiuta di caricare la propria configurazione, incollare il file e verificarlo indica la causa all’istante: una virgola finale, una virgoletta rimasta aperta.

Comprimere per trasferire di meno

Restituire JSON formattato come risposta di API o come dati incorporati spreca banda solo nei rientri. Per tutto ciò che viene distribuito, usi la versione compressa.

Mettere in ordine esempi per la documentazione o per una segnalazione

Dia agli esempi di richiesta e di risposta destinati a una specifica o a una segnalazione di errore una forma leggibile e uniformemente rientrata.

Preparare l’ingresso prima di una conversione

Accertare prima la sintassi le risparmia errori oscuri dall’altra parte quando affiderà i dati a JSON verso tipi TypeScript o a JSON verso XML.

Termini legati al JSON

JSON
Sigla di JavaScript Object Notation, il formato di scambio dati fissato dalla RFC 8259. Poggia su sei sole cose – oggetto, array, stringa, numero, booleano e null – e, poiché ogni linguaggio sa leggerlo e scriverlo, è divenuto il formato consueto delle API web.
Formattazione (pretty-print)
Rifare il testo con rientri e a capo che seguono la profondità dell’annidamento, perché una persona possa leggerlo. I dati non mutano; muta soltanto il loro aspetto.
Compressione (minify)
Togliere ogni spazio e ogni a capo privo di significato e ridurre il tutto a una riga. Il numero di byte cala, dunque si trasferisce meno, ma non è più pensato per l’occhio umano.
Verifica (validazione)
Accertare che l’ingresso segua la grammatica del JSON. Questo strumento lascia il compito all’analizzatore del browser e ne mostra alla lettera il messaggio d’errore in caso di esito negativo.
Sequenza di escape
Modo di scrivere, per mezzo di una barra rovesciata, caratteri che non possono comparire tali e quali dentro una stringa. La virgoletta doppia si scrive \", l’a capo \n, la tabulazione \t.
Ordine delle chiavi
Il JSON di per sé non impone alcun ordine alle chiavi di un oggetto. Poiché questo strumento fa passare i dati per un oggetto JavaScript, vengono riordinate in senso crescente le sole chiavi leggibili come numeri interi – "1", "2" e simili. Ogni altra chiave conserva il posto in cui è stata scritta.
UTF-8
La codifica dei caratteri che la RFC 8259 impone al JSON. I caratteri fuori dall’ASCII occupano più byte ciascuno, sicché il conteggio dei caratteri e quello dei byte non coincidono.

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.