Java中JSON對(duì)象字段為null值的顯示處理方法
問(wèn)題:
如何將JSON對(duì)象中字段為null值的也顯示出來(lái)
分析:
如果字段的值為null,json對(duì)象的默認(rèn)設(shè)置是當(dāng)字段為null時(shí),不會(huì)將該字段和null值添加到這個(gè)json對(duì)象中;
解決方法:
1、針對(duì)jackson的json對(duì)象全局配置(舉例application.properties文件):
spring.jackson.serialization.write-null-map-values=true
針對(duì)gson的json對(duì)象全局配置(舉例application.properties文件):
spring.gson.serialize-nulls=true
當(dāng)然也可以通過(guò)在需要操作的實(shí)體類上添加類注解@JsonSerialize()的方式進(jìn)行局部配置;
但是全局配置會(huì)更加方便,建議使用全局配置的方法.
2、Fastjson的SerializerFeature序列化屬性
QuoteFieldNames———-輸出key時(shí)是否使用雙引號(hào),默認(rèn)為true
WriteMapNullValue——–是否輸出值為null的字段,默認(rèn)為false
WriteNullNumberAsZero—-數(shù)值字段如果為null,輸出為0,而非null
WriteNullListAsEmpty—–List字段如果為null,輸出為[],而非null
WriteNullStringAsEmpty—字符類型字段如果為null,輸出為”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果為null,輸出為false,而非null
舉個(gè)例子:
Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d","test"); String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); System.out.println(str); //輸出結(jié)果:{"a":1,"b":"","c":null,"d":"test"}
附:更多Json空值處理方法
fastjson和Jackson中關(guān)于空值的處理
fastjson
fastjson默認(rèn)轉(zhuǎn)換中回把null值的參數(shù)去除,如果需要空值顯示,如下操作:
JSONObject.toJSONString(resultJson, SerializerFeature.WriteMapNullValue);
Jackson
Jackson中默認(rèn)保留空值,如果想去除空值,可通過(guò)一下操作。
1.注解方式
@JsonInclude(Include.NON_EMPTY)
2.objectMapper
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
總結(jié)
到此這篇關(guān)于Java中JSON對(duì)象字段為null值的顯示處理方法的文章就介紹到這了,更多相關(guān)JSON對(duì)象字段為null值顯示內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
HashSet 底層采用 HashMap 來(lái)保存所有元素,因此 HashSet 的實(shí)現(xiàn)比較簡(jiǎn)單。接下來(lái)通過(guò)本文給大家介紹HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下2017-04-04Java插入JSON對(duì)象到PostgreSQL的步驟詳解
在現(xiàn)代軟件開(kāi)發(fā)中,由于?JSON?數(shù)據(jù)的輕量和通用性,處理?JSON?數(shù)據(jù)已經(jīng)變得無(wú)處不在,PostgreSQL?憑借其對(duì)?JSON?的強(qiáng)大支持,為存儲(chǔ)和查詢?JSON?數(shù)據(jù)提供了出色的平臺(tái),本文給大家介紹了Java插入JSON對(duì)象到PostgreSQL的步驟,需要的朋友可以參考下2024-11-11Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(2)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07Java中的@Conditional條件注解詳細(xì)解析
這篇文章主要介紹了Java中的@Conditional條件注解詳細(xì)解析,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊(cè)bean,需要的朋友可以參考下2023-11-11Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解
這篇文章主要介紹了Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01分享一個(gè)安卓的內(nèi)置多種工具類的Activity
這篇文章主要介紹了分享一個(gè)安卓的內(nèi)置多種工具類的Activity的相關(guān)資料,需要的朋友可以參考下2015-04-04Spring Boot配置application.yml及根據(jù)application.yml選擇啟動(dòng)配置的操作
Spring Boot中可以選擇applicant.properties 作為配置文件,也可以通過(guò)在application.yml中進(jìn)行配置,讓Spring Boot根據(jù)你的選擇進(jìn)行加載啟動(dòng)配置文件,本文給大家介紹Spring Boot配置application.yml及根據(jù)application.yml選擇啟動(dòng)配置的操作方法,感興趣的朋友一起看看吧2023-10-10淺談springboot之JoinPoint的getSignature方法
這篇文章主要介紹了springboot之JoinPoint的getSignature方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06java實(shí)現(xiàn)把兩個(gè)有序數(shù)組合并到一個(gè)數(shù)組的實(shí)例
今天小編就為大家分享一篇java實(shí)現(xiàn)把兩個(gè)有序數(shù)組合并到一個(gè)數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05