我在Android中遇到了Json的问题。在4+它的作用就像一个魅力,但在2.2它失败了。我真的被困在这里了。
我收到错误我收到错误:java.lang.ClassCastException:java.lang.String
在我的服务器中,我将数组解析为:
[{"PRODUCT":
{"product_id":"1",
"name":"name1"}},
{"PRODUCT":
{"product_id":"2",
"name":"name2"}},
{"PRODUCT":
{"product_id":"3",
"name":"name3"}},
{"USER":{"user_id":"1"}
}]
在Android应用程序中我使用代码:
public void buildData(String jsonString, String code) {
mProduct = new HashMap<Integer, Product>();
try {
**here fails -> JSONArray array = (JSONArray) new JSONTokener(jsonString).nextValue();
// Object object = new JSONTokener(jsonString).nextValue();
// object = (object instanceof JSONArray) ? (JSONArray)object : (JSONObject)object ;
// JSONObject obj = (JSONObject) new JSONTokener(jsonString).nextValue();
for(int i = 0; i < array.length(); i++){
JSONObject json = array.getJSONObject(i);
if(json.has(JSON_PRODUCT)){
buildProduct(json.getString(JSON_PRODUCT), code);
}
else if(json.has(JSON_NAME)){
buildUser(json.getString(JSON_NAME));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我不确定数组的格式是否正确?如果有人能帮助我的话。
答案 0 :(得分:1)
我相信您应该将该行更改为以下内容:
JSONArray array = new JSONArray(jsonString);
然后你可以循环它。