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)文章
SpringBoot啟動(dòng)后自動(dòng)執(zhí)行方法的各種方式對(duì)比
這篇文章主要為大家詳細(xì)介紹了SpringBoot啟動(dòng)后自動(dòng)執(zhí)行方法的各種方式和性能對(duì)比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2025-04-04
nodejs連接dubbo服務(wù)的java工程實(shí)現(xiàn)示例
這篇文章主要介紹了在項(xiàng)目遷移中,nodejs連接dubbo服務(wù)的java工程實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
Java優(yōu)雅實(shí)現(xiàn)判空方法(結(jié)合實(shí)際案例)
相信寫(xiě)過(guò)代碼的朋友們都會(huì)進(jìn)行一個(gè)非空判斷,但是各種非空判斷中,那種才是最優(yōu)雅,最高效的呢,這篇文章主要介紹了Java優(yōu)雅實(shí)現(xiàn)判空方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06
Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例
學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的,一定對(duì)隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-08-08
spring NamedContextFactory實(shí)現(xiàn)服務(wù)隔離的示例詳解
假設(shè)我們有個(gè)場(chǎng)景,我們需要實(shí)現(xiàn)服務(wù)之間的數(shù)據(jù)隔離、配置隔離、依賴的spring bean之間隔離,大家會(huì)有什么實(shí)現(xiàn)思路?今天給大家介紹spring-cloud-context里面有個(gè)NamedContextFactory可以達(dá)到上面的效果,需要的朋友可以參考下2024-05-05
Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法
平時(shí)對(duì)接口時(shí),經(jīng)常遇到j(luò)son字符串和map對(duì)象之間的交互,這篇文章主要給大家介紹了關(guān)于Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
SpringBoot Application事件監(jiān)聽(tīng)的實(shí)現(xiàn)方案
這篇文章主要介紹了SpringBoot Application事件監(jiān)聽(tīng)的實(shí)現(xiàn)方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Java連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)方式
文章講述了Java連接MySQL數(shù)據(jù)庫(kù)的詳細(xì)步驟,包括下載和導(dǎo)入JDBC驅(qū)動(dòng)、創(chuàng)建數(shù)據(jù)庫(kù)和表、以及編寫(xiě)連接和讀取數(shù)據(jù)的代碼2024-11-11

