我从服务器返回一个JSON字符串,可以是JSONArray
或JSONObject
,我事先不知道我会得到什么(至少不是那部分代码。)
有办法解决这个问题吗?我的第一个猜测是做这样的事情:
if (jsonString.startsWith("[")) {
r = new JSONArray(jsonString);
} else {
r = new JSONObject(jsonString);
}
但这感觉有点“黑客”。
答案 0 :(得分:2)
instanceof
与JSONTokener怎么样?
Object unknownJSON = new JSONTokener(data).nextValue();
if (unknownJSON instanceof JSONObject)
// well, you know
else if (unknownJSON instanceof JSONArray)
// you should also know
答案 1 :(得分:0)
非常讨厌,但你可以试试这个
try {
JSONObject object = new JSONObject(jsonString);
// u received a json object
} catch (JSONException e) {
// you received a json array
JSONArray array = new JSONArray(jsonString);
}