La storia dietro il formattatore JSON

JSON è oggi il formato parlato dalla maggior parte delle API web, eppure nessun comitato lo ha progettato. È stato notato più che inventato: un piccolo sottoinsieme di JavaScript che bastava appena per scambiare dati tra programmi.

Parentesi graffe e blocchi di dati annidati che formano un albero luminoso
Parentesi graffe e blocchi di dati annidati che formano un albero luminoso

Un formato scoperto

Intorno al 2001 Douglas Crockford e i suoi colleghi di State Software cercavano un modo per far scambiare dati a browser e server senza plugin. Usarono i letterali di oggetti e array che JavaScript già capiva, diedero un nome all'idea e pubblicarono la grammatica su json.org, abbastanza breve da stare sul retro di un biglietto da visita.

Perché non ci sono commenti

Già all'inizio Crockford tolse i commenti da JSON perché alcuni vi inserivano direttive per il parser, cosa che avrebbe rotto l'interoperabilità. Il suo consiglio era di eliminare i commenti con un minificatore prima dell'analisi. Per questo un formattatore segnala un commento come carattere inatteso, e per questo esistono formati come JSON5 e JSONC per i file di configurazione.

Da una pagina web a uno standard

JSON fu descritto per la prima volta nella RFC 4627 nel 2006. Ecma pubblicò ECMA-404 nel 2013 e l'IETF sostituì i testi precedenti con la RFC 8259 nel 2017, che richiede UTF-8 per il JSON scambiato tra sistemi. La grammatica è cambiata pochissimo da json.org: oggetti, array, stringhe, numeri, true, false e null.

Numeri e percorsi

JSON non limita i numeri, ma la maggior parte dei parser li memorizza come valori in virgola mobile a 64 bit, quindi gli interi oltre 9007199254740991 possono perdere precisione senza avviso. Per questo gli ID grandi vengono spesso inviati come stringhe. Per indicare un valore, Stefan Goessner propose JSONPath nel 2007, ispirandosi a XPath, diventato lo standard RFC 9535 nel 2024. I percorsi copiati da questo formattatore seguono quella notazione con dollaro e parentesi quadre.

Domande frequenti

Chi ha inventato JSON?

Douglas Crockford ha specificato e diffuso JSON nei primi anni 2000, ma dice di averlo scoperto, perché è un sottoinsieme di JavaScript che esisteva già.

Perché JSON non ammette virgole finali o apici singoli?

La grammatica è stata mantenuta il più piccola possibile, così che ogni linguaggio la analizzi allo stesso modo. Ogni comodità in più sarebbe un'occasione di disaccordo tra due parser.

JSON è uguale a un oggetto JavaScript?

No. JSON è testo. Le chiavi richiedono virgolette doppie, e funzioni, undefined, commenti, NaN e Infinity non sono ammessi, anche se JavaScript li accetta nel codice.

Pronto a provarlo?

Apri PictorX nel tuo browser: nessuna installazione, nessuna carta di credito richiesta per iniziare.

Apri il formattatore JSON