Spring4 MVC 返回json格式时候 设置不返回null值属性的问题

背景:
使用@responseBody设置以json格式返回数据时候. 有时候被返回的对象有些属性是null值, 默认仍是会输出. 例以下面代码. 在与移动端交互时候会很浪费流量. 
{
 "fpassword" : "sssssssss",
 "favator" : "",
 "fbirthday" : null,
 "fcredType" : null,
 "fcredid" : null,
 "fregistedTime" : null,
 "fstate" : 1,
 "flstate" : 1,
 "fstatusMask" : 0,
 "fstatusMask1" : 0,
 "fcreateTime" : 1443260277000,
 "fmodifyTime" : 1443260277000,
 "fstandby0" : null,
 "fstandby1" : null,
 "fstandby2" : null,
 "fstandby3" : null,
 "fstandby4" : null,
 "fstandby5" : null,
 "fstandby6" : null,
 "fpassFlag" : 1,
 "fquestion1" : null,
 "fanswer1" : null,
 "fquestion2" : null,
 "fanswer2" : null,
 "fregDeviceId" : null,
 "fregClientIp" : null,
 "fregChannel" : null,
 "fpassModifyTime" : null
}
有两种方法设置不返回null值属性. 
1.  在被返回的对象例如User类, 添加注解@JsonInclude(Include.NON_NULL)便可. 在spring4.1.6, jackson-databind 2.5.1版本亲测有效
spring使用的是fasterxml.jackson组件解析对象. 所以依赖一下包..
 spring

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.5.1</version>
</dependency>



问题来了!! 第二种方法:
2. spring mvc配置文件,
json

<mvc:annotation-driven>
        <mvc:message-converters>
            <bean
                class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <beans:property name="objectMapper">
                    <beans:bean class="org.codehaus.jackson.map.ObjectMapper">
                        <beans:property name="serializationInclusion">
                            <util:constant
                                static-field="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion.NON_NULL" />
                        </beans:property>
                    </beans:bean>
                </beans:property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
相关文章
相关标签/搜索