无法获得Json android

时间:2015-06-02 20:17:23

标签: java android json

我想要输出json,但我有错误

06-02 23:10:26.110: W/System.err(23235): org.json.JSONException: Value data of type java.lang.String cannot be converted to JSONObject
06-02 23:10:26.116: W/System.err(23235):    at org.json.JSON.typeMismatch(JSON.java:111)
06-02 23:10:26.117: W/System.err(23235):    at org.json.JSONObject.<init>(JSONObject.java:158)
06-02 23:10:26.117: W/System.err(23235):    at org.json.JSONObject.<init>(JSONObject.java:171)

我创建了我的代码,例如,我的json:

{
    "status": "success",
    "data": {
        "users_information": [
            {
                "id": "1",
                "active": "1",
            },
{
                "id": "2",
                "active": "1",
            }]}}

这是我的代码:

 JSONObject data = new JSONObject("data");

                 JSONArray userInform = data.getJSONArray("users_information");

                 for(int i = 0; i < userInform.length(); i++) {
JSONObject c = userInform.getJSONObject(i);
 Log.e("id ", c.getString("id"));
}

3 个答案:

答案 0 :(得分:3)

String data = "{
    "status": "success",
    "data": {
        "users_information": [
            {
                "id": "1",
                "active": "1",
            },
{
                "id": "2",
                "active": "1",
            }]}}"

解析Json

JSONObject data = new JSONObject(data);

                 JSONArray userInform = data.getJSONArray("users_information");

                 for(int i = 0; i < userInform.length(); i++) {
JSONObject c = userInform.getJSONObject(i);
 Log.e("id ", c.getString("id"));
}

字符串数据json可以替换为从后端接收的JSON

答案 1 :(得分:1)

我不推荐像这样的json反序列化。尝试至少使用Gson库。有了它,你可以像json一样创建具有相同结构的类,它将以单行解析。

答案 2 :(得分:1)

JSONObject data = new JSONObject("data");

您必须将JSON字符串放在放置“数据”的位置。 “data”只是一个字符串,没有你在你的例子中发布的json。

如果由于任何原因“data”是您对JSON字符串的字符串引用,那么您不小心添加了引号(“),让android将其解释为String而不是对String的引用。