默认情况下,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]