【已解决】使用fastjson的时候怎么不忽略null值?
fastjson 默认会把 null 属性忽略掉,保留 null 有三种方式:单个对象在 toJSONString 时传 SerializerFeature.WriteMapNullValue;局部在属性上加 @JSONField(serialzeFeatures={WriteMapNullValue});全局实现 WebMvcConfigurer,在 FastJsonConfig 的 setSerializerFeatures 中开启。
- WriteMapNullValue 让序列化输出null字段
- 单个对象可在 toJSONString 时指定特性
- 局部可用 @JSONField 注解按属性开启
- 全局通过 WebMvcConfigurer 配置转换器
在使用fastjson的将对象序列化成json字符串的时候,如果对象属性为null的话,会被忽略掉的。有时候,这些null值还是很有用的。比如我们在使用echarts的时候,返回给前端就不能因为null而忽略,如果忽略了null值,就会出现如下的错误:

那么使用fastjson怎么解决这个问题?
其实很简单:
方式一:单个对象的时候
直接在转换jsonString的时候,后面添加SerializerPeatrue.WriteMapNullValue即可。如下:
return JSON.toJSONString(option, SerializerFeature.WriteMapNullValue);
其中option是要转换成json字符串的对象
方式二:局部的
如果不是单个,而是有少部分的,属性需要忽略null值,那么只需要在在属性上加上注解。注解如下:
方式三:全局的
实现WebMvcConfigurer,在此配置里面进行修改
@Configuration public class MyWebMvcConfigurer implements WebMvcConfigurer
原创不易,完成人机校验,阅读全文
常见问题
fastjson序列化时null属性被忽略了怎么办?
调用 JSON.toJSONString(option, SerializerFeature.WriteMapNullValue) 即可输出值为 null 的字段。若是接口全局需求,可在实现 WebMvcConfigurer 的配置类中为 FastJsonHttpMessageConverter 开启该 SerializerFeature。