Gson默认生成优化的Json内容,忽略NULL
值。 但是GsonBuilder
提供的标志使用GsonBuilder.serializeNulls()
方法在Json输出中显示NULL
值。
参考以下代码实现 -
GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); Gson gson = builder.create();
创建一个名为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]
创建一个名为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]