当前位置: 首页 > 教程 > Gson >

Gson空对象支持

精华
小牛编辑
117浏览
2023-03-14

Gson默认生成优化的Json内容,忽略NULL值。 但是GsonBuilder提供的标志使用GsonBuilder.serializeNulls()方法在Json输出中显示NULL值。

参考以下代码实现 -

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

不带serializeNulls的示例调用

创建一个名为GsonTester的Java类文件: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+ "]"; 
   } 
}

执行上面示例代码,得到以下结果 -

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

使用serializeNulls调用的示例

创建一个名为GsonTester的Java类文件: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+ "]"; 
   } 
}

执行上面示例代码,得到以下结果 -

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