Skip to main content

Formatta, valida e minifica JSON.

Guida a JSON

JSON (JavaScript Object Notation) is a lightweight data exchange format that has become a standard in modern programming.È facile da leggere e scrivere per le persone e facile da analizzare e generare per le macchine. JSON è indipendente dal linguaggio di programmazione, il che lo rende ideale per la comunicazione tra sistemi e applicazioni web diversi.

La struttura JSON si basa su coppie chiave-valore ed elenchi ordinati di valori.Gli oggetti JSON sono racchiusi tra parentesi graffe {} e contengono zero o più coppie chiave:valore, separate da virgole.Gli array JSON sono racchiusi tra parentesi quadre [] e contengono un elenco ordinato di valori.I valori possono essere stringhe (tra virgolette), numeri, booleani (true/false), null, oggetti o array.

Formattare il JSON migliora la leggibilità del codice.Aggiungere indentazione e a capo rende la struttura dei dati più trasparente, cosa preziosa durante il debug e l'analisi. La minificazione (rimozione degli spazi) riduce la dimensione del file, aspetto importante per le prestazioni delle applicazioni web, soprattutto nella trasmissione in rete.

La validazione del JSON è un passaggio fondamentale prima di elaborare i dati.Un JSON non valido può causare errori dell'applicazione e comportamenti imprevisti. I problemi più comuni sono virgole mancanti, virgolette errate, virgole finali negli elenchi o l'uso di apici singoli invece di doppi. Gli strumenti di validazione aiutano a individuare e correggere rapidamente gli errori.

Tutti i calcoli sono eseguiti localmente nel tuo browser. Nessun dato viene inviato al server.

I risultati hanno carattere informativo. Verificali con altre fonti.

Un JSON con chiave ripetuta si analizza senza intoppi e butta via due valori

Analizza {"id": 1, "id": 2, "id": 3} e ottieni {"id": 3}. Nessun errore, nessun avviso: vince l'ultima occorrenza e le precedenti svaniscono. La specifica lo consente, ogni parser diffuso lo fa, e significa che una chiave duplicata in un file di configurazione non è un errore di sintassi di cui verrai informato.

Come funziona

  • Formatta e convalida JSON segnalando la posizione di un errore di sintassi e non solo che ne esiste uno.
  • Minifica per il trasporto e indenta per la lettura, due compiti diversi sugli stessi dati.
  • Porta alla luce i problemi strutturali che un parser accetta in silenzio.
chiavi duplicate → vince l'ultima occorrenza, in silenzio
interi sopra 2⁵³ − 1 → arrotondati in fase di analisi, in silenzio

NaN e Infinity → null
undefined in un oggetto → la chiave sparisce
undefined in un array → null
BigInt → solleva TypeError

Esempio pratico

Tre cose che un parser fa a JSON valido senza protestare.

  1. {"id": 1, "id": 2, "id": 3} → {"id": 3}
  2. {"id": 9007199254740993} → {"id": 9007199254740992}
  3. {"id": 1770000000123456789} → {"id": 1770000000123456800}
  4. {a: undefined, b: 1} → {"b": 1}: la chiave sparisce
  5. [undefined, 1] → [null, 1]: ma qui diventa null

Lo stesso valore undefined viene rimosso dentro un oggetto e conservato come null dentro un array. Nessuno di questi casi produce un errore, ed è per questo che emergono molto più tardi come un campo mancante o un identificativo che non corrisponde più a nulla.

Come leggere il risultato

  • Gli identificativi grandi sono il caso più dannoso. Un ID a 19 cifre esce da JSON.parse come un numero leggermente diverso, quindi le ricerche falliscono contro un database che ha memorizzato l'originale. Trasmetti quegli ID come stringhe: è esattamente per questo che le grandi API restituiscono id e id_str affiancati.
  • JSON non ha commenti, né virgole finali, né un tipo data. Le date sopravvivono solo come stringhe ISO per convenzione, quindi un giro attraverso JSON trasforma un Date in testo e non lo riporterà indietro senza una gestione esplicita.
  • L'indentazione costa più di quanto si creda: il campione qui cresce dell'84,7% se formattato con due spazi. Formatta per le persone che lo leggono e minifica tutto ciò che attraversa una rete, perché la differenza si avvicina al doppio.
  • L'ordine delle chiavi è preservato da tutte le implementazioni principali ma non è garantito dalla specifica. Farci affidamento funziona finché non funziona più, e confrontare due documenti JSON per uguaglianza di stringhe segnalerà differenze puramente di ordine.

Domande frequenti

Perché il mio identificativo è cambiato dopo un giro di andata e ritorno?
Superava 2⁵³ − 1 ed è stato arrotondato al valore rappresentabile più vicino. 1770000000123456789 torna come 1770000000123456800. La soluzione è trasportare gli identificativi grandi come stringhe, perché nessuna cura nel parser recupera cifre già perse.
Una chiave duplicata rende il JSON non valido?
No. La specifica la consente e i parser la risolvono tenendo l'ultima occorrenza. Questo la rende un pericolo reale nelle configurazioni modificate a mano, dove una chiave ripetuta sovrascrive in silenzio un'impostazione precedente e nulla segnala il conflitto.