如何在android中处理JSON数据

时间:2013-07-26 10:47:35

标签: android json

嘿,我有一个项目,我必须解析一个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

2 个答案:

答案 0 :(得分:4)

用户不是JSONArray而是JSONObject:

更改

 jArray = json_data.getJSONArray("users");

 JSONObject jObj = json_data.getJSONObject("users");

答案 1 :(得分: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"));

    }

[ - &gt;这代表了Json数组

{ - &gt;这代表了Json对象