Il JSON è il formato di scambio più diffuso del web: risposte di API, file di configurazione, esportazioni di dati. È leggibile dalle persone, ma anche molto rigoroso, e basta una virgola dimenticata o di troppo per renderlo illeggibile a un programma. Questa guida ne spiega le regole, come diagnosticare un errore e come passare da un formato all'altro senza danneggiare i dati.
Le regole da conoscere
Un documento JSON contiene oggetti ({"chiave": valore}), array ([1, 2, 3]), stringhe, numeri, true, false e null. Nient'altro. Queste regole spiegano quasi ogni errore:
- Chiavi e stringhe usano le virgolette doppie. Gli apici singoli ('a') non sono validi.
- Nessuna virgola dopo l'ultimo elemento di un oggetto o di un array.
- Nessun commento. Né // né /* */ esistono in JSON.
- Nessun valore speciale come NaN, Infinity o undefined.
- Le chiavi devono essere tra virgolette, a differenza degli oggetti JavaScript.
Formattare e validare passo dopo passo
- Incolla il JSON in Formattatore JSON o trascina un file (al massimo 25 milioni di caratteri). Viene subito indentato, con 2 spazi, 4 spazi o una tabulazione, e le chiavi possono essere ordinate alfabeticamente a ogni livello.
- Esplora il risultato come codice colorato o come albero comprimibile; per un documento grande, l'albero apre solo i livelli utili e mostra le liste lunghe a blocchi di 100.
- In caso di errore, leggi il messaggio: riga, colonna, estratto con un cursore e causa probabile (virgola in più, apici singoli, chiave senza virgolette, commento, NaN).
Perché i numeri grandi sono una trappola
JavaScript rappresenta tutti i numeri come virgola mobile a doppia precisione: oltre 9.007.199.254.740.991 (2⁵³ − 1) gli interi non sono più rappresentati esattamente. L'identificativo 12345678901234567890, letto e poi riscritto da un programma JavaScript, diventa 12345678901234567000. La maggior parte degli strumenti fa questo giro senza dirlo. I nostri copiano i numeri come li hai scritti: un identificativo di 20 cifre, 92.50 o 1E5 non cambiano. Se i tuoi dati contengono identificativi lunghi, è meglio trasmetterli come stringhe.
Errori frequenti
- Copiare un oggetto JavaScript (chiavi senza virgolette, apici singoli) credendo che sia JSON.
- Lasciare una virgola dopo l'ultimo elemento, un'abitudine di altri linguaggi.
- Incollare JSON con commenti proveniente da un file di configurazione (JSONC) in uno strumento che esige JSON rigoroso.
- Convertire identificativi più lunghi di 15 cifre con uno strumento che li arrotonda.
Limiti da conoscere
- Al massimo 25 milioni di caratteri: oltre, usa uno strumento da riga di comando.
- Le chiavi duplicate vengono segnalate e mantenute, ma il loro significato varia tra i lettori: evitale.
- Un CSV è un formato piatto: convertire un JSON molto annidato fa perdere leggibilità.
Domande frequenti
Perché il mio JSON viene rifiutato se in JavaScript funziona?
Perché un oggetto JavaScript accetta chiavi senza virgolette, apici singoli e virgole finali, che il JSON vieta.
I miei dati vengono inviati da qualche parte?
No. Formattazione, validazione e conversione avvengono nel tuo browser.
Come evito che Excel esegua una formula nascosta in un CSV?
Il nostro convertitore antepone un apostrofo a qualsiasi testo che inizia con =, +, - o @. I numeri veri non vengono toccati.
Posso mettere commenti nel JSON?
No. Per una configurazione commentata usa YAML o un formato derivato come JSONC, che gli strumenti JSON rigorosi rifiutano.
Quale indentazione scegliere?
2 spazi è la convenzione più diffusa per il web; anche 4 spazi o una tabulazione sono comuni. È una questione di convenzione del team; il significato dei dati non cambia.