开发手册 欢迎您!
软件开发者资料库

Gson - Null对象支持

Gson Null对象支持 - 从简单和简单的步骤学习Gson,从基本到高级概念,包括概述,环境设置,第一个应用程序,Gson类,对象序列化,数据绑定,对象数据绑定,树模型,流API,序列化示例,数组,集合,泛型,序列化内部类,静态嵌套,非静态嵌套类,具有嵌套静态和非静态类的内部类,自定义类型适配器,自定义序列化,反序列化,空对象,版本控制支持,从序列化中排除字段。

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

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

没有serializeNulls的示例调用

在C中创建名为 GsonTester 的Java类文件: \> GSON_WORKSPACE.

文件 -  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]

serializeNulls调用示例

创建Java类文件名为GsonTester的C:\> GSON_WORKSPACE.

文件 -  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]