解決JSONObject.toJSONString()輸出null的問題
JSONObject.toJSONString()輸出null
問題:fastjson的api種,jsonObject.toJsonString(),當值為null時,沒打印出來
代碼
JSONObject jsonObject = new JSONObject(); jsonObject.put("id",null); jsonObject.put("class","12"); jsonObject.put("name",""); // 使用默認序列化方式打印 System.out.println(jsonObject.toJSONString()); // 使用指定序列化方式 System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
輸出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以發(fā)現(xiàn),使用默認方式時,id沒有打印null,指定序列化SerializerFeature.WriteMapNullValue,會打印null
可以看到
看下SerializerFeature屬性
名稱 | 含義 |
---|---|
QuoteFieldNames | 輸出key時是否使用雙引號,默認為true |
UseSingleQuotes | 使用單引號而不是雙引號,默認為false |
WriteMapNullValue | 是否輸出值為null的字段,默認為false |
WriteEnumUsingToString | Enum輸出name()或者original,默認為false |
SortField | 按字段名稱排序后輸出。默認為false |
WriteTabAsSpecial | 把\t做轉(zhuǎn)義輸出,默認為false |
PrettyForma | 結(jié)果是否格式化,默認為false |
WriteClassName | 序列化時寫入類型信息,默認為false。反序列化是需用到 |
不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString會默認執(zhí)行你這個要解析的類中的所有g(shù)et方法,很容易出現(xiàn)空指針異常,而應該換為gson.toJson()這個方法
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- String轉(zhuǎn)JSONObject的兩種方式
- Java中如何將String轉(zhuǎn)JSONObject
- 關(guān)于JSONObject.toJSONString出現(xiàn)地址引用問題
- 利用JSONObject.toJSONString()包含或排除指定的屬性
- 使用JSONObject.toJSONString 過濾掉值為空的key
- JSONObject?toJSONString錯誤的解決
- Java使用fastjson對String、JSONObject、JSONArray相互轉(zhuǎn)換
- 詳解Java中String JSONObject JSONArray List<實體類>轉(zhuǎn)換
- 解決String字符串轉(zhuǎn)JSONObject順序不對的問題
相關(guān)文章
常用數(shù)字簽名算法RSA與DSA的Java程序內(nèi)實現(xiàn)示例
這篇文章主要介紹了常用數(shù)字簽名算法RSA與DSA的Java程序內(nèi)實現(xiàn)示例,一般來說DSA算法用于簽名的效率會比RSA要快,需要的朋友可以參考下2016-04-04Java 中執(zhí)行動態(tài)表達式語句前中后綴Ognl、SpEL、Groovy、Jexl3
這篇文章主要介紹了Java 中執(zhí)行動態(tài)表達式語時的句前中后綴Ognl、SpEL、Groovy、Jexl3的相關(guān)資料,需要的朋友可以參考下面文章的詳細介紹2021-09-09