Gson - Guida rapida
Google Gson è una semplice libreria basata su Java per serializzare oggetti Java in JSON e viceversa. È una libreria open source sviluppata da Google.
I seguenti punti evidenziano il motivo per cui dovresti utilizzare questa libreria:
Standardized - Gson è una libreria standardizzata gestita da Google.
Efficient - È un'estensione affidabile, veloce ed efficiente della libreria standard Java.
Optimized - La libreria è altamente ottimizzata.
Support Generics - Fornisce un ampio supporto per i generici.
Supports complex inner classes - Supporta oggetti complessi con gerarchie di ereditarietà profonde.
Caratteristiche di Gson
Ecco un elenco di alcune delle caratteristiche più importanti di Gson:
Easy to use - Gson API fornisce una facciata di alto livello per semplificare i casi d'uso comunemente usati.
No need to create mapping - Gson API fornisce la mappatura predefinita per la maggior parte degli oggetti da serializzare.
Performance- Gson è abbastanza veloce e ha un ingombro di memoria ridotto. È adatto per sistemi o grafici a oggetti di grandi dimensioni.
Clean JSON - Gson crea un risultato JSON pulito e compatto che è facile da leggere.
No Dependency - La libreria Gson non richiede altre librerie oltre a JDK.
Open Source- La libreria Gson è open source; è disponibile gratuitamente.
Tre modi di elaborazione di JSON
Gson offre tre modi alternativi per elaborare JSON:
Streaming API
Legge e scrive contenuto JSON come eventi discreti. JsonReader e JsonWriter leggere / scrivere i dati come token, denominato JsonToken.
È l'approccio più potente tra i tre approcci per elaborare JSON. Ha l'overhead più basso ed è abbastanza veloce nelle operazioni di lettura / scrittura. È analogo al parser Stax per XML.
Modello di albero
Prepara una rappresentazione ad albero in memoria del documento JSON. Costruisce un albero di nodi JsonObject. È un approccio flessibile ed è analogo al parser DOM per XML.
Associazione dati
Converte JSON in e da POJO (Plain Old Java Object) utilizzando la funzione di accesso alle proprietà. Gson legge / scrive JSON utilizzando adattatori del tipo di dati. È analogo al parser JAXB per XML.
Configurazione dell'ambiente locale
Se desideri ancora configurare un ambiente locale per il linguaggio di programmazione Java, questa sezione ti guiderà su come scaricare e configurare Java sulla tua macchina. Si prega di seguire i passaggi indicati di seguito, per configurare l'ambiente.
Java SE è disponibile gratuitamente dal collegamento Scarica Java . Quindi scarichi una versione basata sul tuo sistema operativo.
Segui le istruzioni per scaricare Java ed eseguire il file .exeper installare Java sulla tua macchina. Dopo aver installato Java sulla macchina, è necessario impostare le variabili di ambiente in modo che puntino alle directory di installazione corrette.
Impostazione del percorso in Windows 2000 / XP
Supponendo che tu abbia installato Java nella directory c: \ Program Files \ java \ jdk -
Fare clic con il tasto destro del mouse su "Risorse del computer" e selezionare "Proprietà".
Fare clic sul pulsante "Variabili d'ambiente" nella scheda "Avanzate".
Successivamente, modifica la variabile "Path" in modo che contenga anche il percorso dell'eseguibile Java. Ad esempio, se il percorso è attualmente impostato su "C: \ WINDOWS \ SYSTEM32", modificare il percorso in "C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin".
Impostazione del percorso in Windows 95/98 / ME
Supponendo che tu abbia installato Java nella directory c: \ Program Files \ java \ jdk -
Modifica il file "C: \ autoexec.bat" e aggiungi la seguente riga alla fine: "SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin"
Configurazione del percorso per Linux, UNIX, Solaris, FreeBSD
La variabile d'ambiente PATHdovrebbe essere impostato in modo che punti a dove sono stati installati i binari Java. Fare riferimento alla documentazione della shell se si hanno problemi a farlo.
Ad esempio, se usi bash come shell, aggiungi la seguente riga alla fine di '.bashrc: export PATH = / path / to / java: $ PATH'
Editor Java popolari
Per scrivere i tuoi programmi Java, avrai bisogno di un editor di testo. Ci sono alcuni IDE sofisticati disponibili sul mercato. Ma per ora, puoi considerare uno dei seguenti:
Notepad - Su Windows, puoi utilizzare qualsiasi semplice editor di testo come Blocco note (consigliato per questo tutorial) o TextPad.
Netbeans - È un IDE Java open-source e gratuito da cui è possibile scaricare https://netbeans.org/index.html.
Eclipse - È anche un IDE Java sviluppato dalla comunità open source di Eclipse e può essere scaricato da https://www.eclipse.org/.
Scarica Gson Archive
Scarica l'ultima versione del file jar Gson da gson-2.3.1.jar. Al momento della stesura di questo tutorial, abbiamo scaricato gson-2.3.1.jar e lo abbiamo copiato nella cartella C: \> gson.
OS | Nome dell'archivio |
---|---|
finestre | gson-2.3.1.jar |
Linux | gson-2.3.1.jar |
Mac | gson-2.3.1.jar |
Imposta l'ambiente Gson
Impostare il GSON_HOME variabile di ambiente in modo che punti alla posizione della directory di base in cui è archiviato il jar Gson sulla macchina.
OS | Produzione |
---|---|
finestre | Imposta la variabile d'ambiente GSON_HOME su C: \ gson |
Linux | esporta GSON_HOME = / usr / local / gson |
Mac | export GSON_HOME = / Library / gson |
Imposta la variabile CLASSPATH
Impostare il CLASSPATH variabile di ambiente in modo che punti alla posizione del jar Gson.
OS | Produzione |
---|---|
finestre | Imposta la variabile d'ambiente CLASSPATH su% CLASSPATH%;% GSON_HOME% \ gson-2.3.1.jar;.; |
Linux | export CLASSPATH = $ CLASSPATH: $ GSON_HOME / gson-2.3.1.jar :. |
Mac | export CLASSPATH = $ CLASSPATH: $ GSON_HOME / gson-2.3.1.jar :. |
Prima di entrare nei dettagli della libreria Google Gson, vediamo un'applicazione in azione. In questo esempio, abbiamo creato un fileStudentclasse. Creeremo una stringa JSON con i dettagli dello studente e la deserializzeremo instudent oggetto e quindi serializzarlo in una stringa JSON.
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String[] args) {
String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
Gson gson = builder.create();
Student student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
Student [ name: Mahesh, age: 21 ]
{
"name" : "Mahesh",
"age" : 21
}
Passi da ricordare
Di seguito sono riportati i passaggi importanti da considerare qui.
Passaggio 1: creare un oggetto Gson utilizzando GsonBuilder
Crea un oggetto Gson. È un oggetto riutilizzabile.
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
Gson gson = builder.create();
Passaggio 2: deserializza JSON in Object
Usa il metodo fromJson () per ottenere l'oggetto da JSON. Passa la stringa / origine Json della stringa Json e il tipo di oggetto come parametro.
//Object to JSON Conversion
Student student = gson.fromJson(jsonString, Student.class);
Passaggio 3: serializzare l'oggetto in JSON
Utilizzare il metodo toJson () per ottenere la rappresentazione di stringa JSON di un oggetto.
//Object to JSON Conversion
jsonString = gson.toJson(student);
Gson è la principale classe di attori della libreria Google Gson. Fornisce funzionalità per convertire oggetti Java in costrutti JSON corrispondenti e viceversa. Gson viene prima costruito utilizzando GsonBuilder, quindi i metodi toJson (Object) o fromJson (String, Class) vengono utilizzati per leggere / scrivere costrutti JSON.
Dichiarazione di classe
Di seguito è riportata la dichiarazione per com.google.gson.Gson classe -
public final class Gson
extends Object
Costruttori
Suor n | Costruttore e descrizione |
---|---|
1 | Gson() Costruisce un oggetto Gson con la configurazione predefinita. |
Metodi di classe
Suor n | Metodo e descrizione |
---|---|
1 | <T> T fromJson(JsonElement json, Class<T> classOfT) Questo metodo deserializza la lettura Json dall'albero di analisi specificato in un oggetto del tipo specificato. |
2 | <T> T fromJson(JsonElement json, Type typeOfT) Questo metodo deserializza la lettura Json dall'albero di analisi specificato in un oggetto del tipo specificato. |
3 | <T> T fromJson(JsonReader reader, Type typeOfT) Legge il valore JSON successivo dal lettore e lo converte in un oggetto di tipo typeOfT. |
4 | <T> T fromJson(Reader json, Class<T> classOfT) Questo metodo deserializza la lettura Json dal lettore specificato in un oggetto della classe specificata. |
5 | <T> T fromJson(Reader json, Type typeOfT) Questo metodo deserializza la lettura Json dal lettore specificato in un oggetto del tipo specificato. |
6 | <T> T fromJson(String json, Class<T> classOfT) Questo metodo deserializza il Json specificato in un oggetto della classe specificata. |
7 | <T> T fromJson(String json, Type typeOfT) Questo metodo deserializza il Json specificato in un oggetto del tipo specificato. |
8 | <T> TypeAdapter<T> getAdapter(Class<T> type) Restituisce l'adattatore di tipo per il tipo. |
9 | <T> TypeAdapter<T> getAdapter(TypeToken<T> type) Restituisce l'adattatore di tipo per il tipo. |
10 | <T> TypeAdapter<T> getDelegateAdapter(TypeAdapterFactory skipPast, TypeToken<T> type) Questo metodo viene utilizzato per ottenere un adattatore di tipo alternativo per il tipo specificato. |
11 | String toJson(JsonElement jsonElement) Converte un albero di JsonElements nella sua rappresentazione JSON equivalente. |
12 | void toJson(JsonElement jsonElement, Appendable writer) Scrive il JSON equivalente per un albero di JsonElements. |
13 | void toJson(JsonElement jsonElement, JsonWriter writer) Scrive il JSON per jsonElement nel writer. |
14 | String toJson(Object src) Questo metodo serializza l'oggetto specificato nella sua rappresentazione Json equivalente. |
15 | void toJson(Object src, Appendable writer) Questo metodo serializza l'oggetto specificato nella sua rappresentazione Json equivalente. |
16 | String toJson(Object src, Type typeOfSrc) Questo metodo serializza l'oggetto specificato, inclusi quelli di tipi generici, nella sua rappresentazione Json equivalente. |
17 | void toJson(Object src, Type typeOfSrc, Appendable writer) Questo metodo serializza l'oggetto specificato, inclusi quelli di tipi generici, nella sua rappresentazione Json equivalente. |
18 | void toJson(Object src, Type typeOfSrc, JsonWriter writer) Scrive la rappresentazione JSON di src di tipo typeOfSrc nel writer. |
19 | JsonElement toJsonTree(Object src) Questo metodo serializza l'oggetto specificato nella sua rappresentazione equivalente come un albero di JsonElements. |
20 | JsonElement toJsonTree(Object src, Type typeOfSrc) Questo metodo serializza l'oggetto specificato, inclusi quelli di tipi generici, nella sua rappresentazione equivalente come un albero di JsonElements. |
21 | String toString() |
Metodi ereditati
Questa classe eredita i metodi dalla classe seguente:
- java.lang.Object
Esempio
Crea il seguente programma Java utilizzando qualsiasi editor di tua scelta e salvalo, ad esempio, in C: /> GSON_WORKSPACE
File − GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String[] args) {
String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
Gson gson = builder.create();
Student student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output
Student [ name: Mahesh, age: 21 ]
{
"name" : "Mahesh",
"age" : 21
}
Serializziamo un oggetto Java in un file Json e poi leggiamo quel file Json per recuperare l'oggetto. In questo esempio, abbiamo creato un fileStudentclasse. Creeremo un filestudent.json file che avrà l'estensione json rappresentazione di Student oggetto.
Esempio
Crea un file di classe Java denominato GsonTester in C:\>GSON_WORKSPACE.
File: GsonTester.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonTester tester = new GsonTester();
try {
Student student = new Student();
student.setAge(10);
student.setName("Mahesh");
tester.writeJSON(student);
Student student1 = tester.readJSON();
System.out.println(student1);
}
catch(FileNotFoundException e) {
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
}
private void writeJSON(Student student) throws IOException {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
FileWriter writer = new FileWriter("student.json");
writer.write(gson.toJson(student));
writer.close();
}
private Student readJSON() throws FileNotFoundException {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
BufferedReader bufferedReader = new BufferedReader(
new FileReader("student.json"));
Student student = gson.fromJson(bufferedReader, Student.class);
return student;
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output
Student [ name: Mahesh, age: 10 ]
L'API di associazione dati viene utilizzata per convertire JSON in e da POJO (Plain Old Java Object) utilizzando la funzione di accesso alle proprietà o utilizzando le annotazioni. È di due tipi.
Primitives Data Binding - Converte JSON in e da Java Maps, elenchi, stringhe, numeri, booleani e oggetti NULL.
Objects Data Binding - Converte JSON in e da qualsiasi tipo JAVA.
Gson legge / scrive JSON per entrambi i tipi di associazioni di dati. Il data binding è analogo al parser JAXB per XML.
Primitive Data Binding
Il data binding delle primitive si riferisce alla mappatura di JSON ai tipi di dati JAVA Core e alle raccolte integrate. Gson fornisce vari adattatori integrati che possono essere utilizzati per serializzare / deserializzare i tipi di dati primitivi.
Esempio
Vediamo il primitivo data binding in azione. Qui mapperemo i tipi di base JAVA direttamente in JSON e viceversa.
Crea un file di classe Java denominato GsonTester in C:\>Gson_WORKSPACE.
File − GsonTester.java
import java.util.Arrays;
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Gson gson = new Gson();
String name = "Mahesh Kumar";
long rollNo = 1;
boolean verified = false;
int[] marks = {100,90,85};
//Serialization
System.out.println("{");
System.out.println("name: " + gson.toJson(name) +",");
System.out.println("rollNo: " + gson.toJson(rollNo) +",");
System.out.println("verified: " + gson.toJson(verified) +",");
System.out.println("marks:" + gson.toJson(marks));
System.out.println("}");
//De-serialization
name = gson.fromJson("\"Mahesh Kumar\"", String.class);
rollNo = gson.fromJson("1", Long.class);
verified = gson.fromJson("false", Boolean.class);
marks = gson.fromJson("[100,90,85]", int[].class);
System.out.println("name: " + name);
System.out.println("rollNo: " + rollNo);
System.out.println("verified: " +verified);
System.out.println("marks:" + Arrays.toString(marks));
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{
name: "Mahesh Kumar",
rollNo: 1,
verified: false,
marks:[100,90,85]
}
name: Mahesh Kumar
rollNo: 1
verified: false
marks:[100, 90, 85]
L'associazione dati oggetto si riferisce alla mappatura di JSON a qualsiasi oggetto JAVA.
//Create a Gson instance
Gson gson = new Gson();
//map Student object to JSON content
String jsonString = gson.toJson(student);
//map JSON content to Student object
Student student1 = gson.fromJson(jsonString, Student.class);
Esempio
Vediamo l'associazione dei dati degli oggetti in azione. Qui mapperemo l'oggetto JAVA direttamente su JSON e viceversa.
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File: GsonTester.java
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Gson gson = new Gson();
Student student = new Student();
student.setAge(10);
student.setName("Mahesh");
String jsonString = gson.toJson(student);
System.out.println(jsonString);
Student student1 = gson.fromJson(jsonString, Student.class);
System.out.println(student1);
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"name":"Mahesh","age":10}
Student [ name: Mahesh, age: 10 ]
Tree Model prepara una rappresentazione ad albero in memoria del documento JSON. Costruisce un albero di nodi JsonObject. È un approccio flessibile ed è analogo al parser DOM per XML.
Crea albero da JSON
JsonParser fornisce un puntatore al nodo radice dell'albero dopo aver letto il JSON. Il nodo radice può essere utilizzato per attraversare l'intero albero. Considera il seguente frammento di codice per ottenere il nodo radice di una stringa JSON fornita.
//Create an JsonParser instance
JsonParser parser = new JsonParser();
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonElement rootNode = parser.parse(jsonString);
Modello di albero trasversale
Ottieni ogni nodo utilizzando il percorso relativo al nodo radice mentre attraversi l'albero ed elabora i dati. Il frammento di codice seguente mostra come attraversare un albero.
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
public class GsonTester {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonParser parser = new JsonParser();
JsonElement rootNode = parser.parse(jsonString);
if (rootNode.isJsonObject()) {
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
JsonElement verifiedNode = details.get("verified");
System.out.println("Verified: " + (verifiedNode.getAsBoolean() ? "Yes":"No"));
JsonArray marks = details.getAsJsonArray("marks");
for (int i = 0; i < marks.size(); i++) {
JsonPrimitive value = marks.get(i).getAsJsonPrimitive();
System.out.print(value.getAsInt() + " ");
}
}
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85
L'API di streaming viene utilizzata per leggere il token JSON per token. Legge e scrive contenuto JSON come eventi discreti.JsonReader e JsonWriter leggere / scrivere i dati come token, denominato JsonToken.
È l'approccio più potente tra i tre approcci per elaborare JSON. Ha l'overhead più basso ed è abbastanza veloce nelle operazioni di lettura / scrittura. È analogo al parser Stax per XML.
In questo capitolo, mostreremo l'utilizzo delle API di streaming GSON per leggere i dati JSON. L'API di streaming funziona con il concetto di token e ogni dettaglio di Json deve essere gestito con attenzione.
//create JsonReader object and pass it the json source or json text.
JsonReader reader = new JsonReader(new StringReader(jsonString));
//start reading json
reader.beginObject();
//get the next token
JsonToken token = reader.peek();
//check the type of the token
if (token.equals(JsonToken.NAME)) {
//get the current token
fieldname = reader.nextName();
}
Esempio
Vediamo JsonReaderin azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File: GsonTester.java
import java.io.IOException;
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
public class GsonTester {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonReader reader = new JsonReader(new StringReader(jsonString));
try {
handleJsonObject(reader);
}
catch (IOException e) {
e.printStackTrace();
}
}
private static void handleJsonObject(JsonReader reader) throws IOException {
reader.beginObject();
String fieldname = null;
while (reader.hasNext()) {
JsonToken token = reader.peek();
if (token.equals(JsonToken.BEGIN_ARRAY)) {
System.out.print("Marks [ ");
handleJsonArray(reader);
System.out.print("]");
} else if (token.equals(JsonToken.END_OBJECT)) {
reader.endObject();
return;
} else {
if (token.equals(JsonToken.NAME)) {
//get the current token
fieldname = reader.nextName();
}
if ("name".equals(fieldname)) {
//move to next token
token = reader.peek();
System.out.println("Name: "+reader.nextString());
}
if("age".equals(fieldname)) {
//move to next token
token = reader.peek();
System.out.println("Age:" + reader.nextInt());
}
if("verified".equals(fieldname)) {
//move to next token
token = reader.peek();
System.out.println("Verified:" + reader.nextBoolean());
}
}
}
}
private static void handleJsonArray(JsonReader reader) throws IOException {
reader.beginArray();
String fieldname = null;
while (true) {
JsonToken token = reader.peek();
if (token.equals(JsonToken.END_ARRAY)) {
reader.endArray();
break;
} else if (token.equals(JsonToken.BEGIN_OBJECT)) {
handleJsonObject(reader);
} else if (token.equals(JsonToken.END_OBJECT)) {
reader.endObject();
} else {
System.out.print(reader.nextInt() + " ");
}
}
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
Name: Mahesh Kumar
Age:21
Verified:false
Marks [ 100 90 85 ]
In questo capitolo, discuteremo la serializzazione / deserializzazione di array, raccolte e generici.
Esempio di array
int[] marks = {100,90,85};
//Serialization
System.out.println("marks:" + gson.toJson(marks));
//De-serialization
marks = gson.fromJson("[100,90,85]", int[].class);
System.out.println("marks:" + Arrays.toString(marks));
Esempio
Vediamo la serializzazione / deserializzazione di array in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.util.Arrays;
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Gson gson = new Gson();
int[] marks = {100,90,85};
String[] names = {"Ram","Shyam","Mohan"};
//Serialization
System.out.print("{");
System.out.print("marks:" + gson.toJson(marks) + ",");
System.out.print("names:" + gson.toJson(names));
System.out.println("}");
//De-serialization
marks = gson.fromJson("[100,90,85]", int[].class);
names = gson.fromJson("[\"Ram\",\"Shyam\",\"Mohan\"]", String[].class);
System.out.println("marks:" + Arrays.toString(marks));
System.out.println("names:" + Arrays.toString(names));
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{marks:[100,90,85],names:["Ram","Shyam","Mohan"]}
marks:[100, 90, 85]
names:[Ram, Shyam, Mohan]
Esempio di collezioni
List marks = new ArrayList();
//Serialization
System.out.println("marks:" + gson.toJson(marks));
//De-serialization
//get the type of the collection.
Type listType = new TypeToken<list>(){}.getType();
//pass the type of collection
marks = gson.fromJson("[100,90,85]", listType);
System.out.println("marks:" +marks);</list>
Esempio
Vediamo la serializzazione / deserializzazione delle raccolte in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonTester {
public static void main(String args[]) {
Gson gson = new Gson();
Collection<Integer> marks = new ArrayList<Integer>();
marks.add(100);
marks.add(90);
marks.add(85);
//Serialization
System.out.print("{");
System.out.print("marks:" + gson.toJson(marks));
System.out.println("}");
//De-serialization
Type listType = new TypeToken<Collection<Integer>>(){}.getType();
marks = gson.fromJson("[100,90,85]", listType);
System.out.println("marks:" +marks);
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{marks:[100,90,85]}
marks:[100, 90, 85]
Esempio di farmaci generici
Gson utilizza l'API di riflessione Java per ottenere il tipo di oggetto a cui deve essere mappato un testo Json. Ma con i generici, queste informazioni vengono perse durante la serializzazione. Per contrastare questo problema, Gson fornisce una classecom.google.gson.reflect.TypeToken per memorizzare il tipo di oggetto generico.
Esempio
Vediamo la serializzazione / deserializzazione Generics in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonTester {
public static void main(String args[]) {
// create a shape class of type circle.
Shape<Circle> shape = new Shape<Circle>();
// Create a Circle object
Circle circle = new Circle(5.0);
//assign circle to shape
shape.setShape(circle);
Gson gson = new Gson();
// Define a Type shapeType of type circle.
Type shapeType = new TypeToken<Shape<Circle>>() {}.getType();
//Serialize the json as ShapeType
String jsonString = gson.toJson(shape, shapeType);
System.out.println(jsonString);
Shape shape1 = gson.fromJson(jsonString, Shape.class);
System.out.println(shape1.get().getClass());
System.out.println(shape1.get().toString());
System.out.println(shape1.getArea());
Shape shape2 = gson.fromJson(jsonString, shapeType);
System.out.println(shape2.get().getClass());
System.out.println(shape2.get().toString());
System.out.println(shape2.getArea());
}
}
class Shape <T> {
public T shape;
public void setShape(T shape) {
this.shape = shape;
}
public T get() {
return shape;
}
public double getArea() {
if(shape instanceof Circle) {
return ((Circle) shape).getArea();
} else {
return 0.0;
}
}
}
class Circle {
private double radius;
public Circle(double radius){
this.radius = radius;
}
public String toString() {
return "Circle";
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return (radius*radius*3.14);
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"shape":{"radius":5.0}}
class com.google.gson.internal.LinkedTreeMap
{radius = 5.0}
0.0
class Circle
Circle
78.5
In questo capitolo, spiegheremo la serializzazione / deserializzazione di classi con classi interne.
Esempio di classe interna annidata
Student student = new Student();
student.setRollNo(1);
Student.Name name = student.new Name();
name.firstName = "Mahesh";
name.lastName = "Kumar";
student.setName(name);
//serialize inner class object
String nameString = gson.toJson(name);
System.out.println(nameString);
//deserialize inner class object
name = gson.fromJson(nameString,Student.Name.class);
System.out.println(name.getClass());
Esempio
Vediamo un esempio di serializzazione / deserializzazione di una classe con una classe interna in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Student student = new Student();
student.setRollNo(1);
Student.Name name = student.new Name();
name.firstName = "Mahesh";
name.lastName = "Kumar";
student.setName(name);
Gson gson = new Gson();
String jsonString = gson.toJson(student);
System.out.println(jsonString);
student = gson.fromJson(jsonString, Student.class);
System.out.println("Roll No: "+ student.getRollNo());
System.out.println("First Name: "+ student.getName().firstName);
System.out.println("Last Name: "+ student.getName().lastName);
String nameString = gson.toJson(name);
System.out.println(nameString);
name = gson.fromJson(nameString,Student.Name.class);
System.out.println(name.getClass());
System.out.println("First Name: "+ name.firstName);
System.out.println("Last Name: "+ name.lastName);
}
}
class Student {
private int rollNo;
private Name name;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
class Name {
public String firstName;
public String lastName;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"rollNo":1,"name":{"firstName":"Mahesh","lastName":"Kumar"}}
Roll No: 1
First Name: Mahesh
Last Name: Kumar
{"firstName":"Mahesh","lastName":"Kumar"}
class Student$Name
First Name: Mahesh
Last Name: Kumar
Esempio di classe interna statica annidata
Student student = new Student();
student.setRollNo(1);
Student.Name name = new Student.Name();
name.firstName = "Mahesh";
name.lastName = "Kumar";
student.setName(name);
//serialize static inner class object
String nameString = gson.toJson(name);
System.out.println(nameString);
//deserialize static inner class object
name = gson.fromJson(nameString,Student.Name.class);
System.out.println(name.getClass());
Esempio
Vediamo un esempio di serializzazione / deserializzazione di una classe con una classe interna statica in azione. Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Student student = new Student();
student.setRollNo(1);
Student.Name name = new Student.Name();
name.firstName = "Mahesh";
name.lastName = "Kumar";
student.setName(name);
Gson gson = new Gson();
String jsonString = gson.toJson(student);
System.out.println(jsonString);
student = gson.fromJson(jsonString, Student.class);
System.out.println("Roll No: "+ student.getRollNo());
System.out.println("First Name: "+ student.getName().firstName);
System.out.println("Last Name: "+ student.getName().lastName);
String nameString = gson.toJson(name);
System.out.println(nameString);
name = gson.fromJson(nameString,Student.Name.class);
System.out.println(name.getClass());
System.out.println("First Name: "+ name.firstName);
System.out.println("Last Name: "+ name.lastName);
}
}
class Student {
private int rollNo;
private Name name;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
static class Name {
public String firstName;
public String lastName;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"rollNo":1,"name":{"firstName":"Mahesh","lastName":"Kumar"}}
Roll No: 1
First Name: Mahesh
Last Name: Kumar
{"firstName":"Mahesh","lastName":"Kumar"}
class Student$Name
First Name: Mahesh
Last Name: Kumar
Gson esegue la serializzazione / deserializzazione degli oggetti utilizzando i suoi adattatori incorporati. Supporta anche adattatori personalizzati. Parliamo di come puoi creare un adattatore personalizzato e come puoi usarlo.
Crea un adattatore personalizzato
Crea un adattatore personalizzato estendendo il file TypeAdapterclass e passandogli il tipo di oggetto targetizzato. Sostituisci ilread e write metodi per eseguire rispettivamente la deserializzazione e la serializzazione personalizzate.
class StudentAdapter extends TypeAdapter<Student> {
@Override
public Student read(JsonReader reader) throws IOException {
...
}
@Override
public void write(JsonWriter writer, Student student) throws IOException {
}
}
Registra l'adattatore personalizzato
Registrare l'adattatore personalizzato utilizzando GsonBuilder e creare un'istanza di Gson utilizzando GsonBuilder.
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Student.class, new StudentAdapter());
Gson gson = builder.create();
Usa l'adattatore
Gson ora utilizzerà l'adattatore personalizzato per convertire il testo Json in oggetto e viceversa.
String jsonString = "{\"name\":\"Mahesh\", \"rollNo\":1}";
Student student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
jsonString = gson.toJson(student);
System.out.println(jsonString);
Esempio
Vediamo un esempio di adattatore di tipo personalizzato in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Student.class, new StudentAdapter());
builder.setPrettyPrinting();
Gson gson = builder.create();
String jsonString = "{\"name\":\"Mahesh\", \"rollNo\":1}";
Student student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class StudentAdapter extends TypeAdapter<Student> {
@Override
public Student read(JsonReader reader) throws IOException {
Student student = new Student();
reader.beginObject();
String fieldname = null;
while (reader.hasNext()) {
JsonToken token = reader.peek();
if (token.equals(JsonToken.NAME)) {
//get the current token
fieldname = reader.nextName();
}
if ("name".equals(fieldname)) {
//move to next token
token = reader.peek();
student.setName(reader.nextString());
}
if("rollNo".equals(fieldname)) {
//move to next token
token = reader.peek();
student.setRollNo(reader.nextInt());
}
}
reader.endObject();
return student;
}
@Override
public void write(JsonWriter writer, Student student) throws IOException {
writer.beginObject();
writer.name("name");
writer.value(student.getName());
writer.name("rollNo");
writer.value(student.getRollNo());
writer.endObject();
}
}
class Student {
private int rollNo;
private String name;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Student[ name = "+name+", roll no: "+rollNo+ "]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
Student[ name = Mahesh, roll no: 1]
{
"name": "Mahesh",
"rollNo": 1
}
Gson per impostazione predefinita genera contenuto Json ottimizzato ignorando i valori NULL. Ma GsonBuilder fornisce flag per mostrare i valori NULL nell'output Json utilizzando ilGsonBuilder.serializeNulls() metodo.
GsonBuilder builder = new GsonBuilder();
builder.serializeNulls();
Gson gson = builder.create();
Esempio senza serializeNulls Call
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File: GsonTester.java
import com.google.gson.Gson;
public class GsonTester {
public static void main(String args[]) {
Gson gson = new Gson();
Student student = new Student();
student.setRollNo(1);
String jsonString = gson.toJson(student);
System.out.println(jsonString);
student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
}
}
class Student {
private int rollNo;
private String name;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Student[ name = "+name+", roll no: "+rollNo+ "]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"rollNo": 1}
Student[ name = null, roll no: 1]
Esempio con chiamata serializeNulls
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File: GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.serializeNulls();
builder.setPrettyPrinting();
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
String jsonString = gson.toJson(student);
System.out.println(jsonString);
student = gson.fromJson(jsonString, Student.class);
System.out.println(student);
}
}
class Student {
private int rollNo;
private String name;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Student[ name = "+name+", roll no: "+rollNo+ "]";
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{
"rollNo": 1,
"name": null
}
Student[ name = null, roll no: 1]
Gson fornisce @Sinceannotazione per controllare la serializzazione / deserializzazione Json di una classe in base alle sue varie versioni. Considera la seguente classe con supporto per il controllo delle versioni. In questa classe, abbiamo inizialmente definito due variabilirollNo e name e in seguito, abbiamo aggiunto verifiedcome nuova variabile. Usando @Since, abbiamo definitorollNo e name a partire dalla versione 1.0 e verificato come versione 1.1.
class Student {
@Since(1.0)
private int rollNo;
@Since(1.0)
private String name;
@Since(1.1)
private boolean verified;
}
GsonBuilder fornisce il setVersion() metodo per serializzare tale classe con versione.
GsonBuilder builder = new GsonBuilder();
builder.setVersion(1.0);
Gson gson = builder.create();
Esempio
Vediamo un esempio di supporto al controllo delle versioni in azione. Crea un file di classe Java denominatoGsonTester in C: \> GSON_WORKSPACE.
File: GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Since;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.setVersion(1.0);
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
String jsonString = gson.toJson(student);
System.out.println(jsonString);
gson = new Gson();
jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
@Since(1.0)
private int rollNo;
@Since(1.0)
private String name;
@Since(1.1)
private boolean verified;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
{"rollNo":1,"name":"Mahesh Kumar"}
{"rollNo":1,"name":"Mahesh Kumar","verified":true}
Per impostazione predefinita, GSON esclude i campi temporanei e statici dal processo di serializzazione / deserializzazione. Diamo un'occhiata al seguente esempio.
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private int rollNo;
private String name;
private boolean verified;
private transient int id;
public static String className;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output
{"rollNo":1,"name":"Mahesh Kumar","verified":true}
Utilizzo di excludeFieldsWithModifiers
GsonBuilder fornisce il controllo sull'esclusione di campi con un particolare modificatore utilizzando il metodo excludeFieldsWithModifiers () dal processo di serializzazione / deserializzazione. Vedi il seguente esempio.
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.lang.reflect.Modifier;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithModifiers(Modifier.TRANSIENT);
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private int rollNo;
private String name;
private boolean verified;
private transient int id;
public static String className;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output
{"rollNo":1,"name":"Mahesh Kumar","verified":true,"className":"VI"}
Utilizzo di @Expose Annotation
Gson fornisce @Exposeannotazione per controllare la serializzazione / deserializzazione Json di una classe in base al suo ambito. Considera la seguente classe con una variabile avente@Exposesupporto. In questa classe,name e rollnole variabili devono essere esposte per la serializzazione. Quindi abbiamo usato il fileGsonBuilder.excludeFieldsWithoutExposeAnnotation()metodo per indicare che solo le variabili esposte devono essere serializzate / deserializzate. Vedi il seguente esempio.
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
@Expose
private int rollNo;
@Expose
private String name;
private boolean verified;
private int id;
public static String className;
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output
{"rollNo":1,"name":"Mahesh Kumar"}