Java学习笔记

FastJson http消息转换器Null值不返回key问题解

2021-12-30  本文已影响0人  想象之中丶意料之外

问题:

解决方案:

  1. 配置FastJsonHttpMessageConverter中fastJsonConfig
  2. 在FastJsonConfig中配置 serializerFeatures
  3. 在serializerFeatures中添加 WriteMapNullValue选项,用来启用输出值为null的字段。
  4. 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>

上一篇下一篇

猜你喜欢

热点阅读