使用Gson序列化对象时,默认情况下,对象值为"null"的字段在输出值会被忽略(NOTE:collections和arrays中的null对象会被保留)。如果要使Gson序列化对象输出所有的null值,可使用如下方法进行配置。
1
| Gson gson = new GsonBuilder().serializeNulls().create();
|
NOTE:
当使用Gson序列化null值时,它会添加JsonNull元素到JsonElement结构中。
以下就是使用Gson支持输出null值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public class Foo { private final String s; private final int i;
public Foo() { this(null, 5); }
public Foo(String s, int i) { this.s = s; this.i = i; } }
Gson gson = new GsonBuilder().serializeNulls().create(); Foo foo = new Foo(); String json = gson.toJson(foo); System.out.println(json);
json = gson.toJson(null); System.out.println(json);
======== OUTPUT ======== {"s":null,"i":5} null
|
参考: Gson User
Guide
目前已转行教育行业,欢迎加微信交流:CaryaLiu