spring mvc 使用 json 遇到的问题:大小写和过滤null字段

使用Jackson

  1. 返回的 json 没有 null 字段 , 即返回的 bean 中没有值的字段不返回 .
<!-- json支持 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="cacheSeconds" value="0" />
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="com.fasterxml.jackson.databind.ObjectMapper">

                        <!-- 为null字段时不显示 -->
                        <property name="serializationInclusion">
                            <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
                        </property>
                    </bean>
                </property>

            </bean>

        </list>
    </property>
</bean>
  1. 字段 CREATE_DATE 会自动转换成小写 : "create_DATE":"2017-04-25 13:23:56.0"
    解决办法:加入注解
@JsonProperty("CREATE_DATE")
private String CREATE_DATE;

但是不知道为什么会出现两个字段 : "create_DATE":"2017-04-25 13:23:56.0","CREATE_DATE":"2017-04-25 13:23:56.0"


使用fastjson

  1. 返回的 json 没有 null 字段,fastjson 会自动过滤 null 字段。
<!-- json支持 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="cacheSeconds" value="0" />
    <property name="messageConverters">
        <list>
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
            </bean>
        </list>
    </property>
</bean>
  1. 这时候出现字段大小写问题,bean 中的字段为:
private String CREATE_DATE;

返回的 json 为 "cREATE_DATE":"2017-04-25 13:23:56.0" 。
解决办法:加注解

@JSONField( name="CREATE_DATE")
private String CREATE_DATE;

通过解决上面的两个问题发现,fastjson 比较好点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,679评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 9,305评论 0 11
  • 【西南神经医学研究院'▋热线'028-8753-8666▋地址:成都红牌楼北街'13号▋QQ群:541-634-2...
    mswpy03阅读 1,567评论 0 0
  • 2017年国庆长假是一一上小学以来的第一个长假,加上秋假,前后长达11天,当接到老师发到班级群里的放假通知后...
    鱼尾彗星阅读 3,043评论 0 0

友情链接更多精彩内容