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>
相關文章
相關標籤/搜索