问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来
- 代码
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",null);
jsonObject.put("class","12");
jsonObject.put("name","");
// 使用默认序列化方式打印
System.out.println(jsonObject.toJSONString());
// 使用指定序列化方式
System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
- 输出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以发现,使用默认方式时,id没有打印null,指定序列化SerializerFeature.WriteMapNullValue,会打印null
可以看到
- 看下SerializerFeature属性
名称 | 含义 |
---|---|
QuoteFieldNames | 输出key时是否使用双引号,默认为true |
UseSingleQuotes | 使用单引号而不是双引号,默认为false |
WriteMapNullValue | 是否输出值为null的字段,默认为false |
WriteEnumUsingToString | Enum输出name()或者original,默认为false |
SortField | 按字段名称排序后输出。默认为false |
WriteTabAsSpecial | 把\t做转义输出,默认为false |
PrettyForma | 结果是否格式化,默认为false |
WriteClassName | 序列化时写入类型信息,默认为false。反序列化是需用到 |