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.durcframework.common.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值,在结果中就找不到了,不利于调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能体格

你的鼓将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值