免费做电子书的网站有哪些,长沙网站建设服务公司,网站建设太金手指六六二八,html5网站建设 教程视频问题复现#xff1a;
在使用fastjson的将对象序列化成json字符串的时候#xff0c;如果对象属性为null的话#xff0c;会被忽略掉的。有时候#xff0c;这些null值还是很有用的。比如我们在使用echarts的时候#xff0c;返回给前端就不能因为null而忽略#xff0c;如果忽…问题复现
在使用fastjson的将对象序列化成json字符串的时候如果对象属性为null的话会被忽略掉的。有时候这些null值还是很有用的。比如我们在使用echarts的时候返回给前端就不能因为null而忽略如果忽略了null值就会出现如下的错误 那么使用fastjson怎么解决这个问题
更多Java生成echarts相关文章获取
怎么获取更多echarts解决方案凯哥个人BK搜索【echars】 凯哥个人博客 kaigejavacom
其实很简单
方式一单个对象的时候
直接在转换jsonString的时候后面添加SerializerPeatrue.WriteMapNullValue即可。如下
return JSON.toJSONString(option, SerializerFeature.WriteMapNullValue);
其中option是要转换成json字符串的对象
方式二局部的
如果不是单个而是有少部分的属性需要忽略null值那么只需要在在属性上加上注解。注解如下 JSONField(serialzeFeatures {SerializerFeature.WriteMapNullValue})
方式三全局的
实现WebMvcConfigurer在此配置里面进行修改
Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {Overridepublic void configureMessageConverters(ListHttpMessageConverter? converters) {//创建fastJson消息转换器FastJsonHttpMessageConverter converter new FastJsonHttpMessageConverter();ListMediaType supportedMediaTypes new ArrayListMediaType();MediaType mediaTypeJson MediaType.valueOf(MediaType.APPLICATION_JSON_UTF8_VALUE);supportedMediaTypes.add(mediaTypeJson);converter.setSupportedMediaTypes(supportedMediaTypes);//创建配置类FastJsonConfig config new FastJsonConfig();config.getSerializeConfig().put(Json.class, new SwaggerJsonSerializer());//修改配置返回内容的过滤//WriteNullListAsEmpty List字段如果为null,输出为[],而非null//WriteNullStringAsEmpty 字符类型字段如果为null,输出为,而非null//DisableCircularReferenceDetect 消除对同一对象循环引用的问题默认为false如果不配置有可能会进入死循环//WriteNullBooleanAsFalseBoolean字段如果为null,输出为false,而非null//WriteMapNullValue是否输出值为null的字段,默认为falseconfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect/*,SerializerFeature.WriteMapNullValue*/);converter.setFastJsonConfig(config);//将fastjson添加到视图消息转换器列表内converters.add(converter);}}
扩展
SerializerFeature属性