如何解析可以是对象或数组的JSON?

时间:2017-09-14 14:35:33

标签: android json

我从服务器返回一个JSON字符串,可以是JSONArrayJSONObject,我事先不知道我会得到什么(至少不是那部分代码。)

有办法解决这个问题吗?我的第一个猜测是做这样的事情:

if (jsonString.startsWith("[")) {
   r = new JSONArray(jsonString);
} else {
   r = new JSONObject(jsonString);
}

但这感觉有点“黑客”。

2 个答案:

答案 0 :(得分:2)

instanceofJSONTokener怎么样?

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);
}