解決JSONObject.toJSONString()輸出null的問題
JSONObject.toJSONString()輸出null
問題:fastjson的api種,jsonObject.toJsonString(),當(dāng)值為null時(shí),沒打印出來
代碼
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",null);
jsonObject.put("class","12");
jsonObject.put("name","");
// 使用默認(rèn)序列化方式打印
System.out.println(jsonObject.toJSONString());
// 使用指定序列化方式
System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
輸出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以發(fā)現(xiàn),使用默認(rèn)方式時(shí),id沒有打印null,指定序列化SerializerFeature.WriteMapNullValue,會打印null
可以看到

看下SerializerFeature屬性
| 名稱 | 含義 |
|---|---|
| QuoteFieldNames | 輸出key時(shí)是否使用雙引號,默認(rèn)為true |
| UseSingleQuotes | 使用單引號而不是雙引號,默認(rèn)為false |
| WriteMapNullValue | 是否輸出值為null的字段,默認(rèn)為false |
| WriteEnumUsingToString | Enum輸出name()或者original,默認(rèn)為false |
| SortField | 按字段名稱排序后輸出。默認(rèn)為false |
| WriteTabAsSpecial | 把\t做轉(zhuǎn)義輸出,默認(rèn)為false |
| PrettyForma | 結(jié)果是否格式化,默認(rèn)為false |
| WriteClassName | 序列化時(shí)寫入類型信息,默認(rèn)為false。反序列化是需用到 |
不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString會默認(rèn)執(zhí)行你這個(gè)要解析的類中的所有g(shù)et方法,很容易出現(xiàn)空指針異常,而應(yīng)該換為gson.toJson()這個(gè)方法
以上為個(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 過濾掉值為空的key
- JSONObject?toJSONString錯(cuò)誤的解決
- Java使用fastjson對String、JSONObject、JSONArray相互轉(zhuǎn)換
- 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換
- 解決String字符串轉(zhuǎn)JSONObject順序不對的問題
相關(guān)文章
JAVA設(shè)計(jì)模式之備忘錄模式原理與用法詳解
這篇文章主要介紹了JAVA設(shè)計(jì)模式之備忘錄模式,簡單說明了備忘錄模式的概念、原理并結(jié)合實(shí)例形式分析了java備忘錄模式的具體定義及使用方法,需要的朋友可以參考下2017-08-08
Spring Security實(shí)現(xiàn)動態(tài)路由權(quán)限控制方式
這篇文章主要介紹了Spring Security實(shí)現(xiàn)動態(tài)路由權(quán)限控制方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
詳細(xì)聊聊SpringBoot中動態(tài)切換數(shù)據(jù)源的方法
在大型分布式項(xiàng)目中,經(jīng)常會出現(xiàn)多數(shù)據(jù)源的情況,下面這篇文章主要給大家介紹了關(guān)于SpringBoot中動態(tài)切換數(shù)據(jù)源的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
詳談Java中net.sf.json包關(guān)于JSON與對象互轉(zhuǎn)的坑
下面小編就為大家分享一篇Java中net.sf.json包關(guān)于JSON與對象互轉(zhuǎn)的坑,具有很好的參考價(jià)值,希望對大家有所幫助2017-12-12
SpringValidation自定義注解及分組校驗(yàn)功能詳解
這篇文章主要介紹了SpringValidation自定義注解及分組校驗(yàn)功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01

