Gson: compatibilidad con objetos nulos
Gson de forma predeterminada genera contenido Json optimizado ignorando los valores NULL. Pero GsonBuilder proporciona indicadores para mostrar valores NULL en la salida de Json usando elGsonBuilder.serializeNulls() método.
GsonBuilder builder = new GsonBuilder();
builder.serializeNulls();
Gson gson = builder.create();
Ejemplo sin llamada serializeNulls
Cree un archivo de clase Java llamado GsonTester en C: \> GSON_WORKSPACE.
Archivo - 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 el resultado
Compila las clases usando javac compilador de la siguiente manera:
C:\GSON_WORKSPACE>javac GsonTester.java
Ahora ejecute GsonTester para ver el resultado:
C:\GSON_WORKSPACE>java GsonTester
Verifique la salida.
{"rollNo": 1}
Student[ name = null, roll no: 1]
Ejemplo con llamada serializeNulls
Cree un archivo de clase Java llamado GsonTester en C: \> GSON_WORKSPACE.
Archivo - 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 el resultado
Compila las clases usando javac compilador de la siguiente manera:
C:\GSON_WORKSPACE>javac GsonTester.java
Ahora ejecuta el GsonTester para ver el resultado -
C:\GSON_WORKSPACE>java GsonTester
Verifique la salida.
{
"rollNo": 1,
"name": null
}
Student[ name = null, roll no: 1]