Gson - Prise en charge des objets nuls

Gson génère par défaut un contenu Json optimisé en ignorant les valeurs NULL. Mais GsonBuilder fournit des indicateurs pour afficher les valeurs NULL dans la sortie Json en utilisant leGsonBuilder.serializeNulls() méthode.

GsonBuilder builder = new GsonBuilder(); 
builder.serializeNulls(); 
Gson gson = builder.create();

Exemple sans appel serializeNulls

Créez un fichier de classe Java nommé GsonTester dans C: \> GSON_WORKSPACE.

Fichier - 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+ "]"; 
   } 
}

Vérifier le résultat

Compilez les classes en utilisant javac compilateur comme suit -

C:\GSON_WORKSPACE>javac GsonTester.java

Exécutez maintenant le GsonTester pour voir le résultat -

C:\GSON_WORKSPACE>java GsonTester

Vérifiez la sortie.

{"rollNo": 1} 
Student[ name = null, roll no: 1]

Exemple avec l'appel serializeNulls

Créez un fichier de classe Java nommé GsonTester dans C: \> GSON_WORKSPACE.

Fichier - 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+ "]"; 
   } 
}

Vérifier le résultat

Compilez les classes en utilisant javac compilateur comme suit -

C:\GSON_WORKSPACE>javac GsonTester.java

Maintenant, exécutez le GsonTester pour voir le résultat -

C:\GSON_WORKSPACE>java GsonTester

Vérifiez la sortie.

{ 
   "rollNo": 1, 
   "name": null 
} 
Student[ name = null, roll no: 1]