Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Come impostare un IP statico per Raspberry PI

    Novembre 10, 2023

    Le migliori rendite passive tecnologiche per guadagna soldi

    Novembre 4, 2023

    Guida all’Acquisto: I Migliori Router WiFi del 2023

    Settembre 13, 2023
    Facebook X (Twitter) Instagram
    Facebook X (Twitter) Instagram
    iSmanettoneiSmanettone
    Subscribe
    • Home
    • News
    • Programmazione
    • iPhone
    • Wifi e sicurezza
    • Backtrack
    • Arduino
    • Android
    • Apple
    • Raspberry
    • Altro
    iSmanettoneiSmanettone
    Home»News»Programmazione»Java»JSON e Java, come si semplifica la vita con Gson
    Java

    JSON e Java, come si semplifica la vita con Gson

    ismanettoneblogBy ismanettoneblogFebbraio 1, 2016Nessun commento4 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email

    In questo articolo vedremo come trattare facilmente il formato JSON in Java, attraverso la libreria Gson.

    Per chi non lo sapesse (tratto da Wikipedia) ecco che cos’è Json:

    JSON, acronimo di JavaScript Object Notation, è un formato adatto all’interscambio di dati fra applicazioni client-server.[1]

    È basato sul linguaggio JavaScript Standard ECMA-262 3ª edizione dicembre 1999, ma ne è indipendente. Viene usato in AJAX come alternativa aXML/XSLT.[2]

    I tipi di dati supportati da questo formato sono:

    • booleani (true e false);
    • interi, reali, virgola mobile;
    • stringhe racchiuse da doppi apici (");
    • array (sequenze ordinate di valori, separati da virgole e racchiusi in parentesi quadre []);
    • array associativi (sequenze coppie chiave-valore separate da virgole racchiuse in parentesi graffe);
    • null.

    Uno dei motivi principali per cui JSON ha avuto successo negli ultimi anno è perché permette di trasferire tra diversi dispositivi, che hanno in esecuzione programmi scritti in diversi linguaggi di programmazione, oggetti/informazioni/dati.

    Grazie all’utilizzo del formato JSON è possibile convertire una variabile string, del testo, in un “oggetto” in Java.

    Ecco un esempio di un file JSON, che descrive una persona:

    {
       "nome": "Mario",
       "cognome": "Rossi",
       "nascita": {
          "giorno": 1,
          "mese": 1,
          "anno": 1980
       }
    }

    Come potete vedere, è davvero facile leggere un file JSON, in quanto la sintassi usata è davvero minimale.

    Ora vedremo qualche esempio su come usare la libreria Gson per poter convertire un oggetto in un variabile string JSON e il viceversa, ovvero come convertire una string JSON in un oggetto Java.

    Per facilità di comprensione, useremo un oggetto davvero semplice, una Persona che ha come attributi il nome, cognome e la data di nascita.

    Ecco la classe Persona.java:

    package model;
    
    public class Persona {
    
    	private String nome;
    	private String cognome;
    	private Data nascita;
    
    	public Persona(String nome, String cognome, Data nascita) {
    		super();
    		this.nome = nome;
    		this.cognome = cognome;
    		this.nascita = nascita;
    	}
    
    	public String getNome() {
    		return nome;
    	}
    
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    
    	public String getCognome() {
    		return cognome;
    	}
    
    	public void setCognome(String cognome) {
    		this.cognome = cognome;
    	}
    
    	public Data getNascita() {
    		return nascita;
    	}
    
    	public void setNascita(Data nascita) {
    		this.nascita = nascita;
    	}
    
    	@Override
    	public String toString() {
    		return "Persona [nome=" + nome + ", cognome=" + cognome + ", nascita=" + nascita + "]";
    	}
    
    }
    
    

    Ecco la classe Data.java:

    package model;
    
    public class Data {
    
    	private int giorno;
    	private int mese;
    	private int anno;
    
    	public Data(int giorno, int mese, int anno) {
    		super();
    		this.giorno = giorno;
    		this.mese = mese;
    		this.anno = anno;
    	}
    
    	public int getGiorno() {
    		return giorno;
    	}
    
    	public void setGiorno(int giorno) {
    		this.giorno = giorno;
    	}
    
    	public int getMese() {
    		return mese;
    	}
    
    	public void setMese(int mese) {
    		this.mese = mese;
    	}
    
    	public int getAnno() {
    		return anno;
    	}
    
    	public void setAnno(int anno) {
    		this.anno = anno;
    	}
    
    	@Override
    	public String toString() {
    		return "Data [giorno=" + giorno + ", mese=" + mese + ", anno=" + anno + "]";
    	}
    
    }
    

    Ecco il primo test che permette di trasformare un oggetto di tipo Persona in una variabile string e l’operazione inversa:

    package tests;
    
    import com.google.gson.Gson;
    
    import model.Data;
    import model.Persona;
    
    public class ObjectToJSON {
    	public static void main(String[] args) {
    		Persona persona = new Persona("Mario", "Rossi", new Data(1, 1, 1980));
    		Gson gson = new Gson();
    		String jsonString = gson.toJson(persona);
    		System.out.println(jsonString);
    		Persona object = gson.fromJson(jsonString, Persona.class);
    		System.out.println(object);
    	}
    }
    

    Ed ecco l’output:

    {"nome":"Mario","cognome":"Rossi","nascita":{"giorno":1,"mese":1,"anno":1980}}
    Persona [nome=Mario, cognome=Rossi, nascita=Data [giorno=1, mese=1, anno=1980]]

    Ecco il secondo esempio/test che utilizza una lista di oggetti di tipo Persona, con le solite due operazioni, creazione e conversione:

    package tests;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    import model.Data;
    import model.Persona;
    
    public class ObjectsToJSON {
    	public static void main(String[] args) {
    		Persona persona1 = new Persona("Mario", "Rossi", new Data(1, 1, 1980));
    		Persona persona2 = new Persona("Giuseppe", "Verdi", new Data(10, 10, 1970));
    		List<Persona> list = new ArrayList<>();
    		list.add(persona1);
    		list.add(persona2);
    		Gson gson = new Gson();
    		String jsonString = gson.toJson(list);
    		System.out.println(jsonString);
    		java.lang.reflect.Type listType = new TypeToken<ArrayList<Persona>>() {
    		}.getType();
    		System.out.println(gson.fromJson(jsonString, listType).toString());
    	}
    }
    

    Ed ecco l’output:

    [{"nome":"Mario","cognome":"Rossi","nascita":{"giorno":1,"mese":1,"anno":1980}},{"nome":"Giuseppe","cognome":"Verdi","nascita":{"giorno":10,"mese":10,"anno":1970}}]
    [Persona [nome=Mario, cognome=Rossi, nascita=Data [giorno=1, mese=1, anno=1980]], Persona [nome=Giuseppe, cognome=Verdi, nascita=Data [giorno=10, mese=10, anno=1970]]]
    

    Occorre ricordare, che dal momento che viene usato una libreria esterna dall’ambiante Java, è necessario importarla all’interno del Java Build path. La libreria Gson è facilmente scaricabile da Internet.

    Conclusione

    JSON è un formato davvero potente e semplice da usare, perché permette di inviare dati/oggetti tra diversi componenti di un sistema software, con diversi linguaggi di programmazione in gioco.

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    ismanettoneblog

    Related Posts

    LeetCode 134 Gas Station soluzione

    Dicembre 1, 2022

    Calcolatrice in Java: esempi di DP

    Dicembre 23, 2014

    Concetti di base di Java: polimorfismo

    Aprile 3, 2014
    Add A Comment

    Comments are closed.

    Donazione PayPal
    Instructables
    Instructables
    Alla Scoperta di Backtrack
    Alla scoperta di Backtrack
    Raspberry PI
    Kali Linux
    Arduino
    Kali Linux
    Github Repo
    Instructables
    Chi sono e come contattarmi
    Instructables
    Email
    Blogroll
    • Blog di AlterVista
    • Come iniziare
    • Forum di Supporto
    • Guide WordPress
    Meta
    • Accedi
    • Feed dei contenuti
    • Feed dei commenti
    • WordPress.org
    Editors Picks
    8.5

    Apple Planning Big Mac Redesign and Half-Sized Old Mac

    Gennaio 5, 2021

    Autonomous Driving Startup Attracts Chinese Investor

    Gennaio 5, 2021

    Onboard Cameras Allow Disabled Quadcopters to Fly

    Gennaio 5, 2021
    Top Reviews
    9.1

    Review: T-Mobile Winning 5G Race Around the World

    By ismanettoneblog
    8.9

    Xiaomi Mi 10: New Variant with Snapdragon 870 Review

    By ismanettoneblog
    8.9

    Samsung Galaxy S21 Ultra Review: the New King of Android Phones

    By ismanettoneblog
    Advertisement
    Demo
    iSmanettone
    Facebook X (Twitter) Instagram Pinterest Vimeo YouTube
    • Home
    • News
    • Arduino
    • Raspberry
    © 2025 ThemeSphere. Designed by ThemeSphere.

    Type above and press Enter to search. Press Esc to cancel.

    Ad Blocker rilavato
    Ad Blocker rilavato
    Il nostro sito web è reso possibile dalla visualizzazione di pubblicità online ai nostri visitatori. Ti preghiamo di supportarci disabilitando il tuo Ad Blocker