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]