JSON JavaScript Object Notation. Sistemi Informativi Aziendali A.A. 2012/2013

Documenti analoghi
Maps. a.k.a, associative array, map, or dictionary

A review of some Java basics. Java pass-by-value and List<> references

RESTful Services. Sistemi Informativi Aziendali A.A. 2012/2013

Presentazione del corso

Multimedialità ed e-learning

La presente raccolta è pubblicata sotto Licenza CC-By-SA (Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 2.

Introduzione al corso. Tecniche di Programmazione A.A. 2015/2016

Web Services in Eclipse. Sistemi Informativi Aziendali A.A. 2011/2012

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

Presentazione del corso

negli anni sessanta Alla fine della guerra fredda

Corso GNU/Linux. 25 Gennaio

L e-learning nel processo formativo

INDICE SUONARE LI ACCORDI (I GIRI ARMONICI)

Tecniche Informatiche di ricerca giuridica. Nicolò Ghibellini Università di Ferrara

Tracciamento delle attività in Moodle

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Internet of Things & Wireless Sensor Networks

BASI LINGUAGGIO. Programmazione Web 1

STRUTTURA CLASSIFICAZIONE NOMENCLATURA COMBINATA

Il web design: diritti, tutela e limiti sul web e mobile

Java il Corso Fondamentale

BASI LINGUAGGIO. Programmazione Web 1

Puntatori, array, incrementi Array come parametri Array di puntatori. Programmazione 1. Lezione 12. Vincenzo Marra.

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

AJAX. Asynchronous JavaScript and XML

Tutela del Software UNIVERSITÁ DEGLI STUDI DI CAGLIARI FACOLTÁ DI GIURISPRUDENZA DIRITTO PRIVATO DELL INFORMATICA A.A. 2006/2007

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

INTRODUZIONE AD OMNET++

Introduction. The Structure of a Compiler

Resources and Tools for Bibliographic Research. Search & Find Using Library Catalogues

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

SEZIONE XXI - OGGETTI D ARTE, DA COLLEZIONE O DI ANTICHITÀ

Il Computer da zero. Alcune banalità fondamentali:

Question 1: introduction to computer programming

Prato via Pomeria,90-24 ottobre. Be Empathic! Instant Messaging made easy. Cosimo Cecchi Be Empathic!

Riusabilità dei contenuti

Strutture Dati Dinamiche

JSON for Linked Data JSON-LD

Strutture dati e loro organizzazione. Gabriella Trucco

Corso di Laurea in INFORMATICA

Elementi di Informatica

Programmazione Caratteri, stringhe, tipo unit ed ennuple

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Procedurale in Linguaggio C++

Costanti e Variabili

NATIONAL SPORT SCHOOL

PHP e MySQL entrano a scuola. caso di adozione di software libero in un istituto tecnico commerciale programmatori

OpenTour: un utilizzo di mappe aperte per progetti interdisciplinari

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Comunicazione Aumentativa ed Alternativa

XML-RPC. Giuseppe Della Penna Università degli Studi di L Aquila.

Corso di Algoritmi e Strutture Dati con Laboratorio. The JCF(continua): L interfaccia Map

Gestione dinamica della memoria

A.S. 2011/2012. Circuito semaforico da incrocio. Corso di Elettronica. Dipartimento di Elettrotecnica

Le comunità Open Source

TIPI PRIMITIVI E CLASSI WRAPPER

GESTIONE DI PROGETTO E ORGANIZZAZIONE DI IMPRESA

Programmazione ad oggetti

Introduzione C++ Il compilatore. La compilazione in g++ Introduzione a C, C++ e Java. C++ C Java 1977 C 1986 C++ Compilatori Librerie Usare oggetti

Contratto di Edizione. RGB srl (d ora in avanti detto anche "Editore"), con sede in Via Santa Sofia 27, Milano,

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

AUSILIARI. Giocando imparo i tempi semplici e composti

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Esercitazione n. 5. Rappresentazione dei numeri

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

WEB2.0 e AJAX. Il Web è già cambiato. LIL: Laboratorio di Informatica Libera Centro Oltre e Altro P.zza Matteotti, 14 Siena

SEZIONE XIX - ARMI, MUNIZIONI E LORO PARTI ED ACCESSORI

Presentazione di virtual desktop client + LTSP server

Creare una mail di progetto

Downloading and Installing Software Socio TIS

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Laboratorio di Chimica Fisica I

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Dalla parte dei ricercatori: Strumenti Open Access per la ricerca scientifica

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Tecnologie di Sviluppo per il Web

Programmazione in Java e gestione della grafica. Lezione 24

SQL Server 2016: supporto nativo JSON

Programmazione Procedurale in Linguaggio C++

AVERE 30 ANNI E VIVERE CON LA MAMMA BIBLIOTECA BIETTI ITALIAN EDITION

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

APP INVENTOR 2 CON DATABASE MYSQL (ITALIAN EDITION) BY ANTONIO TACCETTI

Tipi di Dati Astratti

Introduzione al corso. Informatica (12BHD) A.A. 2011/2012

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Programmazione ad Oggetti. Java Parte II

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti

La competenza informativa (Information Literacy) nella. Stefania Puccini & Ornella Russo SDIAF - Firenze 26 novembre 2015

Structured Query Language

4 - Tipi di dato primitivi

Fondamenti di informatica

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino

Keep calm, observe and assess

Transcript:

JSON JavaScript Object Notation

Sommario 1. Obiettivo 2. La rappresentazione JSON 3. Librerie Java per JSON 4. Utilizzo di JSON in JavaScript 2

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 4

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 5

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 7

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 8

Object 9

Array 10

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

Strings 12

Numbers 13

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 14

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 15

Esempi { "employees": [ { "firstname":"john", "lastname":"doe, "age": 18 }, { "firstname":"anna", "lastname":"smith", "age": 30}, { "firstname":"peter", "lastname":"jones", "age": 41} ] } 16

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 18

Esempio: json-simple http://code.google.com/p/jsonsimple/ Really simple, just use jsonsimple-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 19

Encoding with json-simple Result: {"balance":1000.21,"num":100,"nickname":nu ll,"is_vip":true,"name":"foo"} 20

Esempio: Google Gson http://code.google.com/p/google-gson/ Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including preexisting objects that you do not have source-code of. 21

Esempio: Jettison http://jettison.codehaus.org/ 22

Licenza d uso Queste diapositive sono distribuite con licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 2.5 Italia (CC BY-NC-SA 2.5) Sei libero: di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera di modificare quest'opera Alle seguenti condizioni: Attribuzione Devi attribuire la paternità dell'opera agli autori originali e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera. Non commerciale Non puoi usare quest'opera per fini commerciali. Condividi allo stesso modo Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa. http://creativecommons.org/licenses/by-nc-sa/2.5/it/ 23