Android中的Json无法正常工作

时间:2013-12-08 21:31:11

标签: android json

我在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();
    }
}

我不确定数组的格式是否正确?如果有人能帮助我的话。

1 个答案:

答案 0 :(得分:1)

我相信您应该将该行更改为以下内容:

JSONArray array = new JSONArray(jsonString);

然后你可以循环它。