我在Java(Android)中使用org.json
包,我只是偶然发现了一个简单的问题。
如果一切正常,网络服务器会返回一个数组,但如果出现问题,则会返回一个json对象{ error : true, ...}
。
我如何将其解析为一个公共对象 - 我的意思是数组和对象毕竟都是json,但似乎JSONArray
和JSONOBject
不共享一个共同的接口。
我错过了什么吗?
答案 0 :(得分:2)
使用JSONTokener.nextValue()并检查结果是JSONObject还是JSONArray(使用instanceof)。
答案 1 :(得分:1)
真正的答案是......修复网络服务器并让它返回一致的结果。否则,您基本上将不得不手动检查返回的数据以查看它是什么。
另一个选择是捕获JSONException
JSONArray
的构造函数,当它不是一个表明你应该尝试JSONObject
的数组时将抛出。