使用JSONObject.toJSONString 過濾掉值為空的key
JSONObject.toJSONString 過濾值為空的key
情況
public static String getJsonResult(int status, String msg, Object data){undefined
? ? ? ? Map<String, Object> resultMap=new HashMap<String, Object>();? ? ? ??
? ? ? ? resultMap.put("status", status);
? ? ? ? resultMap.put("msg", msg);
? ? ? ? resultMap.put("data", data);
? ? ? ? return JSONObject.toJSONString(resultMap);
? ? }
public static void main(String[] args) {undefined
? ? ? ? System.out.println(getJsonResult(1, "success", null));
? ? }結(jié)果
{"msg":"success","status":1}
從輸出結(jié)果可以看出,null對(duì)應(yīng)的key已經(jīng)被過濾掉;這明顯不是我們想要的結(jié)果,這時(shí)我們就需要用到fastjson的SerializerFeature序列化屬性
也就是這個(gè)方法
JSONObject.toJSONString(Object object, SerializerFeature... features) ?
? ? public static String getJsonResult(int status, String msg, Object data){undefined
? ? ? ? Map<String, Object> resultMap=new HashMap<String, Object>();
? ? ? ? resultMap.put("status", status);
? ? ? ? resultMap.put("msg", msg);
? ? ? ? resultMap.put("data", data);
? ? ? ? return JSONObject.toJSONString(resultMap,SerializerFeature.WriteMapNullValue);
? ? }public static void main(String[] args) {undefined
? ? ? ? System.out.println(getJsonResult(1, "success", null));
? ? }結(jié)果
{"msg":"success","data":null,"status":1}
JSONObject.toJSONString自動(dòng)過濾空值
使用fastjson將javabean轉(zhuǎn)string時(shí),默認(rèn)會(huì)將值為null的屬性過濾掉,
可通過設(shè)置SerializerFeature.WriteMapNullValue避免這種情況
String value = JSONObject.toJSONString(objectData, SerializerFeature.WriteMapNullValue);
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- String轉(zhuǎn)JSONObject的兩種方式
- Java中如何將String轉(zhuǎn)JSONObject
- 關(guān)于JSONObject.toJSONString出現(xiàn)地址引用問題
- 利用JSONObject.toJSONString()包含或排除指定的屬性
- JSONObject?toJSONString錯(cuò)誤的解決
- 解決JSONObject.toJSONString()輸出null的問題
- Java使用fastjson對(duì)String、JSONObject、JSONArray相互轉(zhuǎn)換
- 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換
- 解決String字符串轉(zhuǎn)JSONObject順序不對(duì)的問題
相關(guān)文章
Java?深入理解創(chuàng)建型設(shè)計(jì)模式之建造者模式
建造者(Builder)模式和工廠模式的關(guān)注點(diǎn)不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的創(chuàng)建過程,但兩者可以結(jié)合使用2022-02-02
springboot+element-ui實(shí)現(xiàn)多文件一次上傳功能
這篇文章主要介紹了springboot+element-ui多文件一次上傳功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
Java獲得當(dāng)前時(shí)間前指定幾個(gè)小時(shí)具體時(shí)間的方法示例
這篇文章主要介紹了Java獲得當(dāng)前時(shí)間前指定幾個(gè)小時(shí)具體時(shí)間的方法,涉及java使用Calendar針對(duì)日期時(shí)間的相關(guān)運(yùn)算與轉(zhuǎn)換操作技巧,需要的朋友可以參考下2017-08-08
Spring Cloud出現(xiàn)Options Forbidden 403問題解決方法
本篇文章主要介紹了Spring Cloud出現(xiàn)Options Forbidden 403問題解決方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-11-11
SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因
spring-boot-maven-plugin是spring boot提供的maven打包插件,本文主要介紹了SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
基于JSON實(shí)現(xiàn)傳輸byte數(shù)組過程解析
這篇文章主要介紹了基于JSON實(shí)現(xiàn)傳輸byte數(shù)組過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java默認(rèn)傳入時(shí)間段時(shí)間的實(shí)例
下面小編就為大家?guī)硪黄狫ava默認(rèn)傳入時(shí)間段時(shí)間的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10

