FastJson http消息转换器Null值不返回key问题解
问题:
- SpringMVC在配置阿里巴巴的fastJson消息转换器后(FastJsonHttpMessageConverter),返回的Json数据中,如果存在key的值为null,出现丢失key字段问题
解决方案:
- 配置FastJsonHttpMessageConverter中fastJsonConfig
- 在FastJsonConfig中配置 serializerFeatures
- 在serializerFeatures中添加 WriteMapNullValue选项,用来启用输出值为null的字段。
- serializerFeatures枚举类中,枚举值的对应作用见:【fastjson SerializerFeature详解】
配置示例
<!-- 注解驱动,并设置 使用阿里巴巴的 fastJson消息转换器-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<!-- 设置支持的MediaTypes-->
<property name="supportedMediaTypes">
<list>
<!-- 这里顺序不能反,一定先写text/html,不然ie下会出现下载提示(网上说的) -->
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
<property name="fastJsonConfig" ref="fastJsonConfig"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 配置FastJsonConfig bean对象,提供给 fastJson消息转换器注入fastJsonConfig属性-->
<bean id="fastJsonConfig" class="com.alibaba.fastjson.support.config.FastJsonConfig">
<!-- 配置serializerFeatures属性-->
<property name="serializerFeatures">
<array>
<!-- serializerFeatures数组,且值为SerializerFeature的枚举值,所以直接写枚举值即可-->
<value>BrowserSecure</value><!-- 这个是源码中默认配置,故也配置上了-->
<value>WriteMapNullValue</value>
</array>
</property>
</bean>
- 以上在spring-webmvc 5.2.18.RELEASE + fastjson 1.2.73 测试通过
本文标题:FastJson http消息转换器Null值不返回key问题解
本文链接:https://www.haomeiwen.com/subject/zreiqrtx.html
网友评论