我想问一个关于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
我的问题是,我在这里做错了什么,以及如何修复它?
答案 0 :(得分:4)
resultContent
不是JSONArray
,只是JSONObject
。
作为提示,JSONArray
是可识别的,因为它们有方括号(“[”,“]”)。
答案 1 :(得分:0)
resultContent
是一个Object,不是数组。将其更改为JSONObject jArray = jObject.getJSONObject(RESULT_CONTENT);