您的位置:首页 > 编程语言 > Java开发

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

2016-09-30 00:00 507 查看
背景:
使用@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组件解析对象. 因此依赖一下包..

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


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


<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: