Il 0% ha trovato utile questo documento (0 voti)
237 visualizzazioni19 pagine

Json

Il documento descrive JSON (JavaScript Object Notation), uno standard leggero per lo scambio di dati. Viene spiegato come JSON rappresenti oggetti e array e quali tipi di valori supporti. Vengono inoltre presentate alcune librerie Java per la gestione di dati JSON.

Caricato da

NicoloRaccichini
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
237 visualizzazioni19 pagine

Json

Il documento descrive JSON (JavaScript Object Notation), uno standard leggero per lo scambio di dati. Viene spiegato come JSON rappresenti oggetti e array e quali tipi di valori supporti. Vengono inoltre presentate alcune librerie Java per la gestione di dati JSON.

Caricato da

NicoloRaccichini
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 19

Sommario

1. Obiettivo
2. La rappresentazione JSON
3. Librerie Java per JSON
Obiettivo

JSON – JavaScript Object Notation


Obiettivo
 Nell’integrazione di sistemi informativi, spesso i dati
trasferiti sono strutturati (oggetti, strutture, liste, array, ...)
 Come codificare, tali dati in formato testuale?
 Oggetti complessi
 Indipendente dal linguaggio di programmazione
 Semplice e rapido da generare e da acquisire
 Adatto sia server-side che client-side
Tecniche possibili
 SOAP (+XML+XMLSchema+WSDL)
 Perfetto, ma si è dimostrato in molti casi troppo pesante e
macchinoso
 XML + XMLSchema
 Molto diffuso, spesso manca lo Schema (laziness), poco robusto
per evoluzioni dello schema (deve essere condiviso a priori)
 Text (ad-hoc encoding)
 Ultima risorsa. Richiede di inventare meccanismi di codifica,
delimitazione, strutturazione, ... Per dati semplici basta
split&merge
 JSON
 Nato nell’integrazione client-side, ora sempre più diffuso
La rappresentazione JSON

JSON – JavaScript Object Notation


Principi
 Tratto dal linguaggio JavaScript:
 Possiede una sintassi per inizializzare oggetti complessi
 Può generare oggetti dinamicamente
 Non esiste il concetto di «Classe»
 Nuove property possono essere aggiunte dinamicamente
 Sostanziale equivalenza tra liste, array, mappe, strutture
 Conversioni automatiche di ‘tipo’
 JSON: utilizzare la sintassi per l’inizializzazione, già
esistente in JavaScript, per codificare oggetti
 http://www.json.org
 RFC4627: http://www.ietf.org/rfc/rfc4627.txt?number=4627
 Media Type: application/json
Struttura base
 JSON is built on two structures:
 “Object”: A collection of name/value pairs.
In various languages, this is realized as an object, record, struct,
dictionary, hash table, keyed list, or associative array.
 “Array”: An ordered list of values.
In most languages, this is realized as an array, vector, list, or
sequence.
 ...e basta! Tutto viene ricondotto a queste due primitive di
strutturazione
Object
Array
Values
 A value can be a string in double quotes, or a number, or
true or false or null, or an object or an array. These
structures can be nested.
Strings
Numbers
Note (1)
 Esiste un solo tipo Number, senza distinzione tra interi,
float, ...
 Stringhe Unicode (come in Java), con pochi caratteri di
escape
 Non esiste sintassi per tipi più complessi (date, time,
currency, ...)
 Codificati come stringhe
 Codificati come property di oggetti
 Gli array possono anche contenere oggetti di ‘tipo’
diverso tra loro
Note (2)
 Gli oggetti non hanno un ‘tipo’ né una classe
 semplicemente sono identificati dalle proprietà che
contengono (duck-typing).
 Le proprietà, a loro volta, possono essere altri oggetti o
array
 non è necessario dichiararlo o tipizzarle
Esempi
{
"employees": [
{ "firstName":"John" , "lastName":"Doe, "age": 18 },
{ "firstName":"Anna" , "lastName":"Smith" , "age": 30},
{ "firstName":"Peter" , "lastName":"Jones" , "age": 41}
]
}
Librerie Java per JSON

JSON – JavaScript Object Notation


Numerosissime librerie
 Molti framework supportano JSON
 Mettono a disposizione, anche in forma
separata, le relative librerie
 Operazioni chiave:
 Da oggetto (Java) a rappresentazione
JSON
 Automatico vs Selettivo
 Da rappresentazione JSON ad oggetti Java
 Tradotto in Map/List
 Mappato su una classe compatibile
 Da rappresentazione JSON a oggetto
interrogabile
Esempio: json-simple
 http://code.google.com/p/json-
simple/
 Really simple, just use json-
simple-1.1.1.jar
 Metodo .put() per creare oggetti
JSON
 Metodo .get() per interrogare le
proprietà degli oggetti
 Metodo .parse() per leggere un
JSON presente in una stringa
Encoding with json-simple

 Result:
 {"balance":1000.21,"num":100,"nickname":nu
ll,"is_vip":true,"name":"foo"}

Potrebbero piacerti anche