解决FastJson中序列化JSON后有些值是null的属性丢失问题

用FastJson的小伙伴,不在少数!

用fastJson开发的前端,如果使用js请求和接受json数据,使用js模板引擎处理和渲染json数据,都是没有任何问题的,但是你的客户端是通过java去请求的json数据,那么就会遇到一个尴尬的事情,就是后台在使用fastJson去把你的数据序列化的时候,将null值直接忽略,不做序列化,你的调用方也就拿不到这个属性的任何信息,哪怕是{"a":null}也不给你。

优点:

性能好,效率高,节省带宽

缺点:

对于非js客户端,不太友好


解决方案:

配置null值属性序列化特性

JSON.toJSONString(object,SerializerFeature.WriteMapNullValue);


看效果:

配置前:

image.png

配置后:

image.png

还有其它几种特性,可以根据自己需求添加处理:

Boolean null值转false:

SerializerFeature.WriteNullBooleanAsFalse

List null值转 [ ]:

SerializerFeature.WriteNullListAsEmpty

数字 null 转 0:

SerializerFeature.WriteNullNumberAsZero

字符串 null 转 "":

SerializerFeature.WriteNullStringAsEmpty


评论区

zzutligang

2022-04-22 09:53

能同时配置吗?

山东小木

2022-04-22 17:13