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