@ResponseBody 不返回NULL的正确方法(亲测有效)

@ResponseBody 不返回NULL的正确方法(亲测有效)

我在网络上找到了三种解决方法,接下来将一一说明。

1.(唯一有效方法) 在实体类的顶部添加注解:

 @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

该注解需要导入如下包:

import org.codehaus.jackson.map.annotate.JsonSerialize;

详细代码如下:

package com.***.model;

import java.io.Serializable;

import org.codehaus.jackson.map.annotate.JsonSerialize;

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)  
public class User implements Serializable {
    private Long userId;

    private static final long serialVersionUID = 1L;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }
}

2.在实体类顶部添加注解:

@JsonInclude(Include.NON_NULL)

该注解需要导入如下package:

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

3.在SpringMVC.xml中添加以下配置:

<mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                        <property name="serializationInclusion">
                            <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULLvalue>
                        property>
                    bean>
                property>
            bean>
        mvc:message-converters>
mvc:annotation-driven>

需要注意的是,该配置要求springMVC的版本在3.1及以上,我使用的版本是3.2。

"http://www.springframework.org/schema/beans"  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:context="http://www.springframework.org/schema/context"  
 xmlns:mvc="http://www.springframework.org/schema/mvc"  
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
      http://www.springframework.org/schema/context   
      http://www.springframework.org/schema/context/spring-context-3.2.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> 

这三种方法,只有第一种方法测试成功,其他两种方法可能会生效,但遗憾的是我试了几次反复检查都没有用,如果广大网友使用2、3两种方法并且成功了,还请留言告知。

你可能感兴趣的:(Spring)