Salta al contenuto principale Skip to footer content

JSON

Formato di file
Scheda tecnica
Nome completo: 
JavaScript Object Notation
Estensioni: 
.json
Specializzazione: 
JavaScript
Tipo MIME: 
application/json
Sviluppato da: 
Dominio pubblico
Tipologia di standard
de iure
aperto
Estendibile
Livello 4
testuale
Derivato da: 
JavaScript
Revisione: 
2018
Riferimenti: 
  • RFC-8259
  • ECMA-404
  • json.org
  • ISO/IEC 8825-8:2018, ASN.1 encoding rules,
  • part 8: JSON
Conservazione: 
se adottato insieme a uno schema JSON
Categoria lettura: 
Generico
Raccomandazioni lettura: 
Obbligatorio eventualmente subordinato a ulteriori obblighi di conformità con determinati schemi.
Raccomandazioni scrittura: 
Fortemente raccomandato per documenti contenenti dati sia strutturati che non strutturati eventualmente subordinato a ulteriori obblighi di conformità con determinati schemi.

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”.