In questo articolo
Cos'e JSON5?
JSON5 e un superset di JSON che aggiunge funzionalita ispirate alla sintassi ECMAScript 5.1. E stato creato per rendere JSON piu human-friendly per i file di configurazione e altri casi in cui le persone scrivono e leggono JSON manualmente. Ogni documento JSON valido e anche un JSON5 valido, ma JSON5 aggiunge commenti, virgole finali, chiavi senza virgolette e altre comodita.
La specifica JSON5 e stata finalizzata nel 2018 ed e ampiamente adottata negli strumenti JavaScript. Strumenti di build come Babel, Next.js e Webpack accettano file di configurazione JSON5. Convertire JSON5 in JSON standard e necessario quando si interagisce con sistemi che comprendono solo JSON stretto, come API, database e la maggior parte dei linguaggi di programmazione.
Funzionalita di JSON5 spiegate
JSON5 aggiunge diverse estensioni sintattiche che rendono i file di configurazione piu facili da scrivere e mantenere.
- Commenti — sono consentiti commenti a riga singola (//) e multilinea (/* */), rendendo i file di configurazione autodocumentanti
- Virgole finali — array e oggetti possono avere una virgola dopo l'ultimo elemento, riducendo il rumore nei diff
- Chiavi senza virgolette — le chiavi degli oggetti che sono identificatori ECMAScript validi non necessitano di virgolette
- Numeri esadecimali — i valori numerici possono essere scritti come 0xFF, utile per codici colore nella configurazione
- Stringhe multilinea — i valori stringa possono estendersi su piu righe usando la continuazione con backslash
- Valori numerici speciali — Infinity, -Infinity e NaN sono letterali numerici validi in JSON5
Prova gratuitamente — nessuna registrazione richiesta
Converti JSON5 in JSON →Dove viene usato JSON5
JSON5 e utilizzato principalmente negli strumenti dell'ecosistema JavaScript dove i file di configurazione sono scritti e mantenuti dagli sviluppatori.
- Babel — i file .babelrc e babel.config.json5 supportano la sintassi JSON5 per la configurazione di build con commenti
- TypeScript — tsconfig.json supporta le funzionalita JSON5 come commenti e virgole finali (tecnicamente JSONC)
- Chrome DevTools — i profili di limitazione della rete e altre impostazioni usano il formato JSON5
- Next.js — i file di configurazione accettano JSON5 per una configurazione developer-friendly con documentazione inline
Domande frequenti
I browser possono analizzare JSON5 nativamente?
No. I browser supportano solo JSON standard tramite JSON.parse(). Per analizzare JSON5 in un browser o applicazione Node.js, serve il pacchetto npm json5. Gli strumenti di build che supportano JSON5 gestiscono l'analisi internamente durante il loro passaggio di build.
Qual e la differenza tra JSON5 e JSONC?
JSONC (JSON con commenti) aggiunge solo il supporto ai commenti a JSON. JSON5 e un superset piu ampio che aggiunge commenti, virgole finali, chiavi senza virgolette, numeri esadecimali, stringhe multilinea e valori numerici speciali. Il tsconfig.json di TypeScript e settings.json di VS Code usano JSONC, mentre Babel e altri strumenti usano JSON5 completo.
JSON5 e uguale a YAML?
No. JSON5 rimane vicino alla sintassi JSON con piccole aggiunte ergonomiche. YAML e un formato completamente diverso con struttura basata su spazi bianchi, ancore e molte altre funzionalita. JSON5 e piu facile da convertire in JSON perche e un superset stretto. La conversione da YAML a JSON puo comportare perdita di dati perche YAML supporta tipi di dati che JSON non ha.