Gson Null对象支持

gson null对象支持

gson 生成优化的 json 内容,默认忽略 null 值。但是gsonbuilder使用 gsonbuilder.serializenulls() 方法提供了在 json 输出中显示 null 值的标志。

gsonbuilder builder = new gsonbuilder();
builder.serializenulls();
gson gson = builder.create();

 

1. 没有serializenulls调用的示例

在c:> gson_workspace中创建名为 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+ "]";
   }
}

验证结果

使用 javac 编译器编译类如下 -

c:\gson_workspace>javac gsontester.java

现在运行gsontester查看结果 -

c:\gson_workspace>java gsontester

验证输出。

{"rollno": 1}
student[ name = null, roll no: 1]

 

2. serializenulls调用的示例

在c:> gson_workspace中创建名为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+ "]";
   }
}

验证结果

使用 javac 编译器编译类如下:

c:\gson_workspace>javac gsontester.java

现在运行 gsontester 查看结果:

c:\gson_workspace>java gsontester

验证输出。

{
   "rollno": 1,
   "name": null
}
student[ name = null, roll no: 1]

下一节:gson 版本支持

gson 教程

相关文章