JSON
Il formato JavaScript Object Notation (JSON) è un altro formato estremamente versatile ed estendibile che, come XML, è usato in moltissimi ambiti informatici e viene dunque impiegato per svariate applicazioni. Come definito nello standard RFC-8259 del 2018, in un file JSON le evidenze informatiche sono rappresentate gerarchicamente in più livelli:
- Ogni livello (compresa la “radice”) è delimitato da parentesi graffe ‘{’ e ‘}’.
- In ogni livello, ogni elemento (tranne l’ultimo) è separato dal successivo da una virgola ‘,’.
- Ogni elemento è costituito da una coppia nome–valore, separati fra loro da due punti ‘:’, ove il nome è sempre una stringa (delimitata da virgolette ‘"’) e il valore può essere:
- anch’esso una stringa (delimitata da virgolette ‘"’);
- un numero intero o in virgola mobile;
- un booleano rappresentato dalle parole chiavi ‘true’ ovvero ‘false’;
- un array di valori, delimitato da parentesi quadre ‘[’ e ‘]’, separati (tranne l’ultimo) da virgole ‘,’ e con ciascun valore essendo di un qualsiasi tipo in questo elenco,
- un oggetto JSON (cioè sottolivello di questa medesima struttura);
- un tipo di dato che non indica nulla, rappresentato dalla parola chiave ‘null’.
- Tra i caratteri di delimitazione14 sopra elencati, possono essere aggiunti un qualsivoglia numero di caratteri di spaziatura e interruzione di linea (soprattutto nella rappresentazione di tale struttura dati in un file ), ottenendo un’equivalenza del medesimo contenuto.
- L’ordine degli elementi al medesimo livello di un array o di una struttura JSON è indifferente.
Un esempio di documento informatico rappresentato in formato JSON è dato dal seguente elenco di attributi di identificazione elettronica:{
"id":"cae8877c-e533-4d8a-9f38-d7f219392b1f",
"firstName":"Mario",
"lastName":"Rossi",
"fiscalCode":"RSSMRA75L01H501A",
"phoneNum":["+393201234567","+393398901234"],
"children":[
"id":"cae8877c-e533-4d8a-9f38-d7f219392b1f",
"firstName":"Luigi",
"lastName":"Bianchi",
"fiscalCode":"RSSMRA75L01H501A",
"phoneNum":["+393332468013"],
"children":[
…………
],
"alive?":true
],
"alive?":no
}
Un vantaggio di JSON rispetto a XML è la semplicità della sintassi che, pur non offrendo capacità avanzate quali i namespace o la possibilità di “attraversare” la struttura ad albero (offerte da XML), dispone di una struttura più semplice da interpretare –soprattutto da parte di processi automatici– senza perdere la caratteristica fondamentale della leggibilità da parte dell’uomo. Un impiego particolare di JSON è in alcuni tipi di basi di dati che necessitano uno scambio di tabelle potenzialmente grandi e complesse ma non necessariamente relazionate fra loro: in tali casi viene solitamente considerata una rappresentazione di interscambio mediante JSON piuttosto che i formati nativi dei altri tipi di basi di dati (p.es. SQL). Un’ulteriore caratteristica del JSON nel rappresentare basi di dati è che ogni dato può avere una struttura completamente diversa dagli altri; per questo motivo tale formato è ideale per l’archiviazione l’elaborazione, in automatico, di dati cosiddetti “non strutturati”.