fastjson生成json时Null属性不显示

在使用Fastjson解析json时发现,默认处理null时,无论是Map还是Object,结果会把null的字段以及值过滤掉,业务上需要保留null值

Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("a", 1);
jsonMap.put("b", "");
jsonMap.put("c", null);
jsonMap.put("d", "appblog.cn");

String str = JSONObject.toJSONString(jsonMap);
System.out.println(str);
//输出结果:{"a":1,"b":"",d:"appblog.cn"}

从输出结果可以看出,null对应的key已经被过滤掉,我们也可以使用Fastjson的SerializerFeature序列化属性

JSONObject.toJSONString(Object object, SerializerFeature... features)

Fastjson的SerializerFeature序列化属性

  • QuoteFieldNames: 输出key时是否使用双引号,默认为true
  • WriteMapNullValue: 是否输出值为null的字段,默认为false
  • WriteNullNumberAsZero: 数值字段如果为null,输出为0,而非null
  • WriteNullListAsEmpty: List字段如果为null,输出为[],而非null
  • WriteNullStringAsEmpty: 字符类型字段如果为null,输出为"",而非null
  • WriteNullBooleanAsFalse: Boolean字段如果为null,输出为false,而非null
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("a", 1);
jsonMap.put("b", "");
jsonMap.put("c", null);
jsonMap.put("d", "appblog.cn");

String str = JSONObject.toJSONString(jsonMap, SerializerFeature.WriteMapNullValue);
System.out.println(str);
//输出结果:{"a":1,"b":"","c":null,d:"appblog.cn"}
上一篇 Java中finalize的作用
下一篇 fastjson可正常反序列化字符串null
目录
文章列表
1 Java的itext常见方法总结--2(单元格,表格,图片)
Java的itext常见方法总结--2(单元格,表格,图片)
2
Flutter Widget之TabBar与TabBarView
Flutter Widget之TabBar与TabBarView
3
Spring Cloud熔断器Hystrix
Spring Cloud熔断器Hystrix
4
Spring Cloud Zuul MySQL 实现动态路由以及手动刷新
Spring Cloud Zuul MySQL 实现动态路由以及手动刷新
5
GreenDao insert 解决 PRIMARY KEY must be unique
GreenDao insert 解决 PRIMARY KEY must be unique
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。