javascript
JSONObject toJSONString错误
1. ?com.alibaba.fastjson.JSONObject 繼承了JSON,可以使用其2個(gè)重要的方法:
Model model = new Model();
String json = JSONObject.toJSONString(model); // serializes model to Json
Model model2 = JSONObject.parseObject(json, Model.class); // deserializes json into model2
即可以將json字符串轉(zhuǎn)為json對(duì)象,如果該json對(duì)象的內(nèi)容是可預(yù)期的對(duì)象類型,那么可以通過Model model2 = JSONObject.parseObject(json, Model.class); 取得預(yù)期的對(duì)象;
如果是不可預(yù)期的json字符串時(shí),但有固定的key,則可通過JSONObject jsonObject = JSONObject.parseObject(jsonStr);
然后通過 jsonObject.getString("key");等基本方法獲取key對(duì)于的value.
2. 但是,在使用時(shí),需要注意的地方,并非所有的對(duì)象,都能通過JSONObject.toJSONString(model) 轉(zhuǎn)換成功。
例如:在接入阿里語音驗(yàn)證碼時(shí),對(duì)SingleCallByTtsRequest請求對(duì)象使用以上方法時(shí),就會(huì)轉(zhuǎn)換報(bào)錯(cuò)。
SingleCallByTtsRequest extends RpcAcsRequest<SingleCallByTtsResponse>
?
RpcAcsRequest<T extends AcsResponse> extends AcsRequest<T>
?
SingleCallByTtsResponse extends AcsResponse
?
他們的繼承關(guān)系如上,這里并未對(duì)錯(cuò)誤原因進(jìn)行深入分析,猜測是因?yàn)槠渲杏邢嗷ヒ脤?dǎo)致解析轉(zhuǎn)換失敗。
3. 默認(rèn)過濾掉值為null的key
public static String toJSONString(Object object):
該方法將實(shí)體對(duì)象轉(zhuǎn)換成Json字符串時(shí)默認(rèn)忽略值為null的屬性。
public static String toJSONString(Object object, SerializerFeature… features):
該方法將實(shí)體對(duì)象轉(zhuǎn)換成Json字符串時(shí),如果不傳遞參數(shù)SerializerFeature.WriteMapNullValue,則忽略值為null的屬性。
?
————————————————
版權(quán)聲明:本文為CSDN博主「陌下微塵」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_33045443/article/details/90059429
總結(jié)
以上是生活随笔為你收集整理的JSONObject toJSONString错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 翘首的意思及成语解释(翘首的意思)
- 下一篇: 吴思瑶这个名字怎么样(吴思瑶)