admin管理员组

文章数量:1794759

spring mvc 返回json中去除null字段

spring mvc 返回json中去除null字段

为了减少不必要的内容传输, 过滤null字段,可对返回的类加入注释来解决。

条件:

1.  spring mvc 3.X 支持注解

2. jackson-code.jar,jackson-mapper.jar 通常用jackson-all-xxx.jar 就行了

使用:

在需要序列化为json输出的类上增加, 例如:

import org.codehaus.jackson.map.annotate.JsonSerialize; @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) public class XXXX{ }

官方说明

@deprecated As of Jackson 2.0, this annotation has been replaced      *    by {@link com.fasterxml.jackson.annotation.JsonInclude}

改成:

@JsonInclude(Include.NON_NULL) public class XXXX{ }

如果要全局配置可参考:

<mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="prefixJson" value="false" /> <property name="supportedMediaTypes" value="application/json" /> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> </bean> </mvc:message-converters> <mvc:annotation-driven> <!-- 强化参数接收 --> <mvc:argument-resolvers> <bean class="org.durcframeworkmon.form.FormModelMethodArgumentResolver" /> </mvc:argument-resolvers> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <!-- 处理responseBody 里面日期类型 --> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> </bean> </property> <!-- 为null字段时不显示 --> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>全局配置有个问题是,本来就该为null值,在结果中就找不到了,不利于调试。

本文标签: 字段MVCspringnulljson