Che cos'è un file JSON, con cosa aprirlo e come modificarlo
In sintesi: Dal testo illeggibile nel Blocco note ai tre modi per aprire un file JSON, più come verificare che nulla si sia rotto dopo la modifica e cosa fare quando un file enorme non si apre.

In sintesi: prima di aprire un file JSON, verifica la sua codifica e il BOM, poi controlla che la struttura sia solo un oggetto o un array; dopo la modifica, validalo sempre con un parser invece di ispezionare a occhio parentesi e virgole.
È semplicemente un file di testo semplice con estensione
.json, e perfino il Blocco note può aprirlo. Il vero grattacapo non è "non si apre", ma che una volta aperto non riesci a vedere cosa hai rotto.
1. Cosa c'è davvero dentro un file JSON
Un file JSON valido può contenere solo una di due cose: un oggetto {...} o un array [...]. Nient'altro è ammesso — niente dichiarazioni di variabili, niente commenti, niente funzioni.
{
"name": "order service",
"port": 8080,
"debug": false,
"upstream": ["10.0.0.11", "10.0.0.12"],
"timeout": null
}
Dal punto di vista strutturale basta riconoscere tre cose:
| Cosa vedi | Significato | Concetto di programmazione corrispondente |
|---|---|---|
Coppie chiave-valore racchiuse in { } |
Un oggetto; le chiavi devono essere stringhe tra virgolette doppie | Map / struct |
Una sequenza di valori racchiusa in [ ] |
Un array; i tipi degli elementi possono differire | List |
| Sei tipi di valore | Stringa, numero, booleano, null, oggetto, array | Solo questi sei; niente date e niente interi |
L'estensione del file non determina il contenuto: package.json, tsconfig.json e composer.json sono tutti la stessa cosa; semplicemente strumenti diversi hanno concordato di leggere chiavi diverse.
2. Tre modi per aprirlo, scelti in base allo scenario
Solo una rapida occhiata: aprilo nel browser. Trascina il file in una finestra di Chrome o Edge e il browser lo mostra così com'è; se è installata un'estensione JSON Viewer, viene formattato e reso comprimibile automaticamente.
Devi modificare il contenuto: usa un editor. VS Code, Sublime e Notepad++ offrono tutti evidenziazione della sintassi JSON e abbinamento delle parentesi, e in VS Code Shift + Alt + F formatta il documento. Nota che il Blocco note di Windows può aggiungere un BOM al salvataggio, quindi le modifiche alla configurazione potrebbero non avere effetto; meglio evitarlo.
Non vuoi installare nulla, vuoi solo validare: usa il formattatore JSON online. Incolla il contenuto e vedrai subito numeri di riga e colonna, posizione degli errori e un albero comprimibile; copia il risultato quando hai finito. I dati vengono elaborati localmente nel browser e non vengono caricati su alcun server.
File grandi (decine di MB o più): non forzarli ad aprirsi in un editor. Aprire un file JSON da 100 MB in VS Code si blocca al punto da farti dubitare delle scelte di vita; ispeziona prima la struttura dalla riga di comando:
# Look at the first 20 lines to confirm whether it is an array
head -n 20 data.json
# Use jq to list top-level keys without loading the whole file
jq -r 'keys[]' data.json | head
# Count the array length
jq 'length' data.json
3. Cosa fare quando il doppio clic apre testo illeggibile
Tre cause, ciascuna gestita diversamente:
- In realtà è un file binario (per esempio un archivio compresso, o un file di database esportato, con estensione
.json). Usafile data.jsonper vedere il tipo reale; non forzarlo a essere trattato come testo. - La codifica non è UTF-8. Il testo cinese codificato in GBK appare illeggibile in un ambiente UTF-8. Usa "Riapri con codifica" dell'editor per provare una volta GBK; se viene visualizzato correttamente, salvalo come UTF-8.
- Il file è stato cifrato o compresso. Il sintomo è
PK(zip) o una serie di punti interrogativi all'inizio; questi file devono prima essere decompressi o decifrati.
4. Come verificare che nulla si sia rotto dopo la modifica
JSON ha tolleranza zero: una virgola mancante, una virgola in più o una virgoletta mancante e l'intero file è morto, e la posizione dell'errore riportata spesso indica la riga successiva. Quindi devi validare dopo la modifica; non fidarti dei tuoi occhi.
Le tre azioni di modifica ad alto rischio, in ordine di frequenza con cui causano problemi:
| Azione | Conseguenza comune | Come evitarla |
|---|---|---|
| Incollare un blocco di configurazione | Porta con sé una virgola finale o punteggiatura a larghezza piena | Formatta subito dopo aver incollato |
| Scambiare manualmente l'ordine delle chiavi | Una virgola in più o una mancante | Usa i comandi di spostamento righe dell'editor; non riscriverlo a mano |
| Eliminare l'ultimo elemento di un array | Lascia ,] dietro |
Controlla che le parentesi siano abbinate dopo l'eliminazione |
La validazione è semplice: incollalo nel validatore online e cerca il testo rosso, oppure esegui una riga dalla riga di comando:
python3 -m json.tool config.json > /dev/null && echo OK
Se stampa OK, il file è valido. Se vuoi validare anche i tipi dei campi (per esempio port deve essere un numero e name non deve essere vuoto), scrivere un JSON Schema è molto più affidabile dell'occhio umano.
5. In cosa .json differisce dai suoi parenti stretti
| Estensione | Differenza | Un parser standard può leggerlo |
|---|---|---|
.json |
JSON standard | Sì |
.jsonc |
Consente commenti // e /* */ |
No; i commenti devono essere rimossi prima |
.json5 |
Consente commenti, apici singoli, chiavi senza virgolette, virgole finali | No; serve un parser JSON5 |
.jsonl / .ndjson |
Un JSON indipendente per riga; il file nel suo complesso non è JSON valido | No, non nel complesso; deve essere letto riga per riga |
Non stupirti di vedere commenti in tsconfig.json; in realtà viene gestito come .jsonc. Passa lo stesso contenuto a JSON.parse e solleverà un errore. Quando devi convertire tra loro, usa Da JSON5 a JSON per rimuovere commenti e virgole finali in un clic.
6. Quando è il momento di cambiare formato di archiviazione
JSON è adatto agli scenari in cui "la struttura non è fissa, gli esseri umani devono leggerla e viaggia tra linguaggi diversi". Se un file supera le decine di MB, la struttura dei campi è stabile e servono query condizionali, restare su JSON significa solo procurarsi problemi — passa a SQLite, Parquet o caricalo in un database; le prestazioni di lettura/scrittura differiscono di ordini di grandezza. Per i compromessi specifici, vedi Parsing e streaming di JSON di grandi dimensioni.
FAQ
Come posso ispezionare un file JSON troppo grande per essere aperto?
Non forzarlo ad aprirsi in un editor; aprire un file JSON da 100 MB in VS Code si blocca al punto da farti dubitare delle scelte di vita. Usa la riga di comando per ispezionare prima la struttura: head -n 20 conferma se è un array, jq -r 'keys[]' elenca solo le chiavi di livello superiore e jq 'length' conta la lunghezza dell'array. Nessuno di questi comandi carica l'intero file.
Perché le mie modifiche nel Blocco note impediscono alla configurazione di avere effetto?
Il Blocco note di Windows può aggiungere un BOM al salvataggio, e un file con BOM fallisce il parsing della configurazione, quindi il contenuto modificato non entra mai in vigore. La raccomandazione dell'articolo è usare editor come VS Code, Sublime o Notepad++, che offrono evidenziazione della sintassi JSON e abbinamento delle parentesi. Se hai già usato il Blocco note, salva di nuovo come "UTF-8 senza BOM" e riprova.
Posso trattare un file JSON come JSON5 e aggiungere commenti?
No — un parser standard non consente commenti in un file .json e JSON.parse solleva subito un errore. I commenti appartengono ai file .jsonc o .json5 letti dal parser corrispondente. File come tsconfig.json vengono in realtà gestiti come .jsonc; passa lo stesso contenuto a JSON.parse e fallisce.