JSON, è un formato di scambio dati che utilizza la notazione letterale fornita da JavaScript per rappresentare dati strutturati. È a tutti gli effetti un sottinsieme del linguaggio JavaScript. Esso permette l’uso di dati che vengono interpretati direttamente come oggetti JavaScript o come array.
A differenza di XML, JSON fa uso di primitive ben supportate dai browser più comuni che ne rendono estremamente efficiente la gestione.
Tutto ciò risulta molto comodo in Ajax, dove lo spreco di banda ed il parsing delle response sono sempre cruciali.
Ovviamente JSON è completamente indipendente dal tipo di linguaggio di programmazione utilizzato. Inoltre è ampliamente supportato dalla maggior parte dei linguaggi di programmazione grazie alla disponibilità di numerose librerie.
I dati che si possono rappresentare in JSON sono di tipo:
object: ovvero una collezione di coppie chiave:valore separate da virgola e racchiusi all’interno di parentesi graffe. (ad es. { “nome” : “pinco”, “cognome” : “pallino” } )
array: sequenza ordinata di valori separati da virgola (ad esempio “email” : [ “pincopallino@pippo.it”, “pluto@pippo.it” ] )
value: un singolo valore che può essere una stringa racchiusa tra virgolette, oppure un number, un object, un array o un boolean.
Vediamo ora un esempio di testo in formato JSON:
{“person”: {
“personalData”: {
“firstName”: ”pinco”,
“lastName” : ”pallino”,
“email” : ”pincopallino@pippo.it”,
“phones” : [ “123456789”, “123456789”, “7777777777”]
“age” : 18
}
}
Abbiamo un oggetto root “person” e un oggetto nodo “personalData”. Quest’ultimo a sua volta contiene (come da definizione di oggetto JSON) delle coppie chiave:valore. Notiamo che la chiave “phones” in realtà è un array, quindi una sequenza di valori.
JSON e JavaScript
Ora supponiamo di aver ricevuto dal server il testo dell’esempio precedente e supponiamo di volerlo “parsare” tramite JavaScript. Per fare questo basterà semplicemente usare la funzione JavaScript eval() come segue:
var myObject = eval(’(’ + myJSONtext + ‘)’);
Se ad esempio volessimo recuperare il valore del campo “email” contenuto all’interno del testo basterà usare la sintassi myObject.person.personalData.email.
Bisogna però stare attenti al fatto che eval() esegue qualsiasi codice JavaScript gli venga passato.Di conseguenza l’uso di questa funzione è indicato solamente quando sappiamo che la sorgente del messaggio è sicura. Inoltre non è detto che il messaggio JSON ricevuto sia valido.
Per questo è meglio usare un JSON parser come segue:
var myObject = JSON.parse(myJSONtext, reviver);
dove il parametro opzionale reviver è una funzione che verrà eseguita per ogni coppia chiave:valore.
Ogni valore sarà sostituito dal valore restituito dalla funzione reviver.
Il JSON parser fornito da questa libreria accetta solo testi in formati JSON, quindi niente script maliziosi!
Date le sue caratteristiche è opportuno penare non resta che chiedersi quale formato di interscambio è preferibile usare nelle nostre applicazioni.
Ovviamente tutto dipende dal contesto e dai requisiti dell’applicazione stessa e valutare poi, quanto un certo formato piuttosto che un altro sia supportato dal linguaggio di programmazione usato.



JSON: JavaScript Object Notation…
JSON, è un formato di scambio dati che utilizza la notazione letterale fornita da JavaScript per rappresentare dati strutturati. È a tutti gli effetti un sottinsieme del linguaggio JavaScript. Esso permette l’uso di dati che vengono interpretati di…