Il JSON (JavaScript Object Notation) è uno standard aperto (RFC 8259) per l’interscambio di dati basato su un formato di testo semplice e leggibile sia dagli esseri umani che dalle macchine. Pur derivando dalla sintassi degli oggetti letterali del linguaggio JavaScript, JSON è oggi un formato universale, supportato nativamente da praticamente tutti i linguaggi di programmazione moderni (Python, Java, C#, Go).
La sua architettura si fonda su due strutture dati elementari:
- Collezione di coppie chiave/valore: realizzata sintatticamente con le parentesi graffe
{}(assimilabile a dictionary, hash table o oggetti). - Elenco ordinato di valori: realizzato con le parentesi quadre
[](assimilabile ad array, vettori o liste).
I tipi di dato supportati per i valori includono stringhe, numeri, booleani (true/false), array, altri oggetti JSON (permettendone l’annidamento gerarchico profondo) e il valore null.
Nell’ingegneria del software contemporanea, JSON ha sostituito quasi interamente l’XML come payload preferenziale per il trasferimento asincrono di dati client-server, in particolar modo nelle API RESTful. La sua popolarità deriva dall’estrema leggerezza (minor overhead sintattico rispetto ai tag XML) e dalla rapidità con cui i parser riescono a trasformare la stringa serializzata in strutture dati native in memoria.