2014-02-19 58 views
1

我想问一个关于JSON解析的问题。Android应用程序JSON奇怪的解析错误

现在我得到响应,看起来像这样:

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

所以,据我所知,这是一个int值和一个数组的一个记录。在ma应用程序中,我提取这些值这种方式:

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:值{ “订单ID”: “1268”}在 类型的resultContent org.json.JSONObject不能被转换为JSONArray

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

回答

4

resultContent不是JSONArray,它只是一个JSONObject

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

+0

谢谢你的提示,我一直对此感到困惑。 – sebap123

0

resultContent是一个对象,没有数组。更改为JSONObject jArray = jObject.getJSONObject(RESULT_CONTENT);

+0

当你在这里时,你可以试试GSON,它是一个来自Google的库,它可以将Json反序列化为pojo(类)对象 https://code.google.com/p/google-gson / –