版本:1.2.56
SerializerFeature.WriteMapNullValue,// 显示空字段
SerializerFeature.WriteNullListAsEmpty,// List类型字段为null时输出[]而非null
SerializerFeature.WriteNullStringAsEmpty,// 字符串类型字段为null时输出""而非null
这3个结合不生效呀?null还是null,没有输出""
场景:
在配置spring boot的mvc输出时这样使用:
`@override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//1.定义一个消息转换对象convert
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2.添加fastJson配置信息,是否需要格式化
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.DisableCircularReferenceDetect,// 禁用循环引用检测
SerializerFeature.WriteMapNullValue,// 显示空字段
SerializerFeature.WriteNullListAsEmpty,// List类型字段为null时输出[]而非null
SerializerFeature.WriteNullStringAsEmpty,// 字符串类型字段为null时输出""而非null
SerializerFeature.WriteNullNumberAsZero,// 数值字段如果为null,输出为0,而非null
SerializerFeature.WriteNullBooleanAsFalse// Boolean类型字段为null时输出false而null
);
//3.在convert添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.ALL);
fastMediaTypes.add(MediaType.APPLICATION_JSON);
fastMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
fastMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
fastMediaTypes.add(MediaType.APPLICATION_PDF);
fastMediaTypes.add(MediaType.APPLICATION_RSS_XML);
fastMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
fastMediaTypes.add(MediaType.APPLICATION_XML);
fastMediaTypes.add(MediaType.IMAGE_GIF);
fastMediaTypes.add(MediaType.IMAGE_JPEG);
fastMediaTypes.add(MediaType.IMAGE_PNG);
fastMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
fastMediaTypes.add(MediaType.TEXT_HTML);
fastMediaTypes.add(MediaType.TEXT_MARKDOWN);
fastMediaTypes.add(MediaType.TEXT_PLAIN);
fastMediaTypes.add(MediaType.TEXT_XML);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
//4.将convert添加到converters中
converters.add(fastConverter);
}`
然后出现前面提到的,WriteNullStringAsEmpty 与WriteMapNullValue结合,不生效
这个是spring的组件FastJsonHttpMessageConverter的问题,单元测试不好写。
5条答案
按热度按时间icnyk63a1#
最好写个单元测试,这样文字描述比较抽象
cngwdvgl2#
场景:
在配置spring boot的mvc输出时这样使用:
`@override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
}`
然后出现前面提到的,WriteNullStringAsEmpty 与WriteMapNullValue结合,不生效
这个是spring的组件FastJsonHttpMessageConverter的问题,单元测试不好写。
e7arh2l63#
@cnhans 你是不是指 Map 中的 null 序列化的时候还是 null,没有生成 ""
h79rfbju4#
对
sgtfey8w5#
@cnhans