用FastJson的小伙伴,不在少数!
用fastJson开发的前端,如果使用js请求和接受json数据,使用js模板引擎处理和渲染json数据,都是没有任何问题的,但是你的客户端是通过java去请求的json数据,那么就会遇到一个尴尬的事情,就是后台在使用fastJson去把你的数据序列化的时候,将null值直接忽略,不做序列化,你的调用方也就拿不到这个属性的任何信息,哪怕是{"a":null}也不给你。
优点:
性能好,效率高,节省带宽
缺点:
对于非js客户端,不太友好
解决方案:
配置null值属性序列化特性
JSON.toJSONString(object,SerializerFeature.WriteMapNullValue);
看效果:
配置前:
配置后:
还有其它几种特性,可以根据自己需求添加处理:
Boolean null值转false:
SerializerFeature.WriteNullBooleanAsFalse
List null值转 [ ]:
SerializerFeature.WriteNullListAsEmpty
数字 null 转 0:
SerializerFeature.WriteNullNumberAsZero
字符串 null 转 "":
SerializerFeature.WriteNullStringAsEmpty
项目:JBolt极速开发平台