JSON反序列化异常
来源:互联网 发布:mac os sierra正式版 编辑:程序博客网 时间:2024/04/28 17:19
出一题给大家:
正常情况:{"Areas":[{"Id":1,"Name":"\u5317\u4EAC"},{"Id":2,"Name":"\u4E0A\u6D77"},{"Id":3,"Name":"\u5929\u6D25"}],"Message":null}
异常情况:{"Areas":null,"Message":null}
目的拿到Areas里的数组,如果拿不到也不能抛异常
root.getJSONArray("Areas").isArray()
本来想这样解决的,可是还是抛出了如下异常,是正式环境抛出的异常
[http-8005-34] - 2013-08-07 10:41:18,093 - [ERROR] - com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:38) - JSONObject["Areas"] is not a JSONArray.net.sf.json.JSONException: JSONObject["Areas"] is not a JSONArray.at net.sf.json.JSONObject.getJSONArray(JSONObject.java:2119)
JSONObject jsonObj=root.getJSONObject("Areas");jsonObj.isEmpty();
这种是怎么都不行的,抛出了如下异常
2013-08-07 17:48:59 - [ERROR] - com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor - null objectnet.sf.json.JSONException: null object at net.sf.json.JSONObject.verifyIsNull(JSONObject.java:2835) at net.sf.json.JSONObject.isEmpty(JSONObject.java:2208)
JSONObject jsonObj=root.getJSONObject("Areas");jsonObj.isNullObject();
突然觉得,是不是应该这样呢?这样倒是对异常情况ok,对正常情况又会有下面的错误。。
2013-08-07 17:57:43 - [ERROR] - com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor - JSONObject["Areas"] is not a JSONObject.net.sf.json.JSONException: JSONObject["Areas"] is not a JSONObject. at net.sf.json.JSONObject.getJSONObject(JSONObject.java:2139)
是否搞得黔驴技穷了?还有没有其他办法?
Object obj=root.get("Areas");
直接拿到这个对象呢,能有什么办法来判断?
结果Object没有JSONObject的方法,怎么办?
断点看结果吧,再一步一步来,isNullObject这个值是null,那用null判断来做?
obj==null,也有问题,这个获取的对象不为null,这样判断肯定不行。
obj.equals("null")试了下,这也是不行的?那真的没有办法了吗?
应该不是这样的,所以,继续冥想,总算找到了解决之道,也许不是最好的方式,但也是一种方式,所以提供出来给大家借鉴
if (!root.get("Areas").toString().equals("null")) { JSONArray areas = root.getJSONArray("Areas");}
然后正常逻辑就满足了,也不再抛异常了。
that's all
- JSON反序列化异常
- json 反序列化
- Json反序列化
- json反序列化
- json反序列化
- 反序列化Json
- json串反序列化解析异常
- JSON高效反序列化
- json的反序列化
- Java json反序列化
- JSON序列化、JSON反序列化
- Newtonsoft.Json 反序列化JSON数组
- json反序列化和反序列化
- JSON使用MissingMemberHandling 反序列化对象中不匹配成员的异常
- Json序列化 与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列化
- Json序列化与反序列化
- 斯诺登爆料美国1969年登月是造假!
- 探讨符号式未来,函数式语言//冒号说明法
- 和自己赛跑的人
- Nginx负载均衡
- Android软键盘(输入法)使用大杂烩:避免进入页面EditText自动弹出软键盘-2013.11.08更新
- JSON反序列化异常
- 不靠谱的自己
- 周鸿祎:集中优势兵力,单点突破
- 轻量级php框架phpk v1.0发布
- 生、死、腾讯、360
- CodeIgniter 自带分类详解及如何一直显示首页和尾页
- ASIHTTPRequest类库简介和使用说明
- 利用msxml创建xml
- hdu-1181-变形课