0

嘿,我有一个项目,我必须解析一个 JSON 对象它真的让我很难将这些数据处理成我可以使用的格式 Json 数据本身看起来像这样

{
"users": {
    "token": "FFFFFFFFF###5",
    "username": "wanjiku",
    "full name": "Wanjiku Karimi",
    "profilePic": "http://freevar.com/vr-content/uploads/2012/08/Freevar-Profile-Pictures-Pimp.jpg",
    "cradle": [
        {
            "name": "wanjiku's rock",
            "id": "1",
            "logo": "http://freevar.it/150x150"
        }
    ]
}

}

我从 JsonObject 检索这些数据的代码是这样的

try{
    JSONObject json_data = new JSONObject(result);
    JSONArray jArray = null;

    jArray = json_data.getJSONArray("users");

    for(int i = 0; i < jArray.length(); i++){
        JSONObject c = jArray.getJSONObject(i);
        System.out.println(c.getString("token"));

    }

请帮我检索当前的数据我得到的错误是

org.json.JSONObject 无法转换为 JSONArray

4

2 回答 2

4

users 不是 JSONArray 而是 JSONObject:

改变

 jArray = json_data.getJSONArray("users");

 JSONObject jObj = json_data.getJSONObject("users");
于 2013-07-26T10:48:36.763 回答
1

你可以用这个

JSONObject json_data = new JSONObject(result);
    JSONArray jArray = null;
  JSONObject   jobj = json_data.getJSONObject("users");
   System.out.println(jobj.getString("token"));
    System.out.println(jobj.getString("username"));
    System.out.println(jobj.getString("full name"));

     jArray = jobj .getJSONArray("cradle");
    for(int i = 0; i < jArray.length(); i++){
        JSONObject c = jArray.getJSONObject(i);
        System.out.println(c.getString("name"));
       System.out.println(c.getString("id"));
        System.out.println(c.getString("logo"));

    }

[ -> 这表示第一个 Json 数组

{ -> 这代表 Json 对象

于 2013-07-26T10:55:04.570 回答