Gson Null对象支持 Gson定制型适配器 Gson版本支持 默认情况下,Gson生成优化的Json内容,忽略NULL值。但是GsonBuilder使用 GsonBuilder.serializeNulls() 方法提供了在Json输出中显示NULL值的标志。 GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); Gson gson = builder.create(); 没有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] 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版本支持