久久天天躁狠狠躁夜夜免费观看,精品国产粉嫩内射白浆内射双马尾,久久国产欧美日韩精品,久久久久久性高,激情欧美成人久久综合

Jackson 轉(zhuǎn)換JSON,SpringMVC ajax 輸出,當值為null或者空不輸出字段@JsonInclude

JSON 2017-09-07 21:37:02 36513

當我們提供接口的時候,  Ajax  返回的時候,當對象在轉(zhuǎn)換  JSON  (序列化)的時候,值為Null 或者為“” 的字段還是輸出來了。看上去不優(yōu)雅。

現(xiàn)在我敘述三種方式來控制這種情況。

注解的方式( @JsonInclude(JsonInclude.Include.NON_EMPTY))

通過@JsonInclude 注解來標記,但是值的可選項有四類。

  1. Include.Include.ALWAYSDefault / 都參與序列化)
  2. Include.NON_DEFAULT(當Value 為默認值的時候不參與,如Int a; a=0 的時候不參與)
  3. Include.NON_EMPTY(當Value “” 或者null 不輸出)
  4. Include.NON_NULL(當Value null 不輸出)

注解使用如下:

... ...

//如果是null 和 “” 不返回
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private T data;

... ...

我的對象定義(其實就是一個API接口的返回對象):

public class APIResult<T> implements Serializable {
    //狀態(tài)
    private Integer status;
    //描述
    private String message;

    //如果是null 不返回
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private T data;
    /*** getter / setter***/
}

我的前端返回值:

{"status":200,"message":"success"}

如上,基本達到我的要求了。

代碼方式:

ObjectMapper mapper = new ObjectMapper();
//null不序列化
mapper.setSerializationInclusion(Include.NON_NULL); 

Demo demo = new Demo(200,"",null); 
String json = mapper.writeValueAsString(demo); 
System.out.println(json);
//結(jié)果:{"st":200,"name":""} 為null的屬性沒輸出。

Spring配置文件實現(xiàn)

當我們整個項目都需要某一種規(guī)則的時候,那么我們就采用配置文件配置。

先還是上一下  Jackson  的  Maven  配置:

    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-core</artifactId>  
        <version>${jackson.version}</version>  
    </dependency>  
      
    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-databind</artifactId>  
        <version>${jackson.version}</version>  
    </dependency>  

再來一個XML配置:

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

其實所有的姿勢都是針對  Jackson  提供給我們的入口“JsonInclude.Include” 來處理的。所以只要記住最上面講的幾個級別就可以了。

其實這些都是一些基礎(chǔ)知識,我只是整合下,后面要豐富首頁的內(nèi)容。

版權(quán)所屬:SO JSON在線解析

原文地址:http://suancuo.cn/blog/248.html

轉(zhuǎn)載時必須以鏈接形式注明原始出處及本聲明。

本文主題:

如果本文對你有幫助,那么請你贊助我,讓我更有激情的寫下去,幫助更多的人。

關(guān)于作者
一個低調(diào)而悶騷的男人。
相關(guān)文章
Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ...
Java 文字轉(zhuǎn)圖片輸出,Java 輸出透明背景圖片,Java文字轉(zhuǎn)圖片防爬蟲
json對象與json字符串的轉(zhuǎn)換方法
Java API接口返回不是JSON的解決方案,SpringMVC返回JSON配置。
蘋果電腦Mac怎么恢復廠系統(tǒng)?蘋果系統(tǒng)怎么重裝系統(tǒng)?
使用zxing解析二維碼拋com.google.zxing.NotFoundException 解決方案
GZIP壓縮JSON,JSON壓縮
cpu資源采集.json
SQL Server 對JSON的支持
json 解析與生成工具類 ,JSON操作講解(附件)
最新文章
計算機網(wǎng)絡(luò)的相關(guān)內(nèi)容 354
SOJSON V6 JavaScript 解密技巧與分析 5940
微信客服人工電話95068:如何快速解封微信賬號(2025最新指南) 11866
Java Http請求,HttpURLConnection HTTP請求丟失頭信息,Head信息丟失解決方案 5052
實用API合集分享:教你輕松獲取IP地址的API合集 8839
Linux I/O重定向 6705
Ruby 循環(huán) - while、for、until、break、redo 和 retry 3990
Node.js:全局對象 3604
如何使用終端檢查Linux上的內(nèi)存使用情況 3779
JavaScript對象詳細剖析 3252
最熱文章
免費天氣API,天氣JSON API,不限次數(shù)獲取十五天的天氣預報 745364
最新MyEclipse8.5注冊碼,有效期到2020年 (已經(jīng)更新) 703112
蘋果電腦Mac怎么恢復出廠系統(tǒng)?蘋果系統(tǒng)怎么重裝系統(tǒng)? 678428
Jackson 時間格式化,時間注解 @JsonFormat 用法、時差問題說明 561958
我為什么要選擇RabbitMQ ,RabbitMQ簡介,各種MQ選型對比 511823
Elasticsearch教程(四) elasticsearch head 插件安裝和使用 483716
Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ... 299543
Java 信任所有SSL證書,HTTPS請求拋錯,忽略證書請求完美解決 246654
Elasticsearch教程(一),全程直播(小白級別) 232088
談談斐訊路由器劫持,你用斐訊路由器,你需要知道的事情 227528
支付掃碼

所有贊助/開支都講公開明細,用于網(wǎng)站維護:贊助名單查看

查看我的收藏

正在加載... ...