Android应用中的JSON奇怪解析错误

时间:2014-02-19 16:22:42

标签: android json

我想问一个关于JSON解析的问题。

现在我得到的响应如下:

{"resultCode":200,"resultContent":{"orderId":"1268"}}

因此,据我所知,这是一个int值和一个带有一个记录的数组。在ma app中,我以这种方式提取这些值:

int id = -1;
JSONObject jObject = new JSONObject(json);
int resultCode = jObject.getInt(RESULT_CODE);
if (resultCode!=200) {
    return id;
}
JSONArray jArray = jObject.getJSONArray(RESULT_CONTENT);
for (int i = 0; i < jArray.length(); i++) {
    JSONObject jArrayObject = jArray.getJSONObject(i);
    id = Integer.valueOf(jArrayObject.getString(ORDER_ID));
}
return id;

所以,它应该工作,id应该有适当的值。

但是,我收到的错误/警告是:

  

org.json.JSONException:Value {“orderId”:“1268”} at resultContent of   类型org.json.JSONObject无法转换为JSONArray

我的问题是,我在这里做错了什么,以及如何修复它?

2 个答案:

答案 0 :(得分:4)

resultContent不是JSONArray,只是JSONObject

作为提示,JSONArray是可识别的,因为它们有方括号(“[”,“]”)。

答案 1 :(得分:0)

resultContent是一个Object,不是数组。将其更改为JSONObject jArray = jObject.getJSONObject(RESULT_CONTENT);