在Android中解析JSONArray

时间:2014-04-08 11:23:23

标签: android json

我是json解析的新手,并且很受欢迎。我必须解析以下内容: -

[
  {
    "firstname": abc,
    "lastname": xyp,
    "designation" : executive,
    "user": {
      "username": "xypabc",
      "userid": 4003,
      },
  },

  {
    "firstname": pqr,
    "lastname": vbn,
    "designation" : security,
    "user": {
      "username": "vbnpqr",
      "userid": 11231,
      },
  },    


  {
    "firstname": ghk,
    "lastname": lkj,
    "designation" : manager,
    "user": {
      "username": "lkjghk",
      "userid": 774,
      },
  }
]

我需要从上面获取“login”和“userid”。以下是我写的代码: -

try {
    JSONArray jsonObj = new JSONArray(response);
    for(int i=0 ; i<jsonObj.length(); i++)
    {                                       
        JSONObject json_Data = jsonObj.getJSONObject(i);
        String userName = json_Data.getString("username");
        String userId = json_Data.getString("userid");
        Log.d("Factors","UserName :- "+userName+" ID :- "+userId);
    }
    }catch (JSONException e) {
        Log.d("Failure","Dude I have failed");
    }.

问题是我的代码最终会出现异常。 请帮忙!!!

5 个答案:

答案 0 :(得分:1)

usernameuseriduser JSONObject内解析用户JSONObject,然后获取用户名和用户ID的字符串。

这样做可以获得usernameuserid

for(int i=0 ; i<jsonObj.length(); i++)
    {                                       
        JSONObject json_Data = jsonObj.getJSONObject(i);
        String userName = json_Data.getJSONObject("user").getString("username");
        String userId = json_Data.getJSONObject("user").getString("userid");
        Log.d("Factors","UserName :- "+userName+" ID :- "+userId);
    }

答案 1 :(得分:1)

试试这段代码::)

  JSONArray jsonObj = new JSONArray(response);
                for(int i=0 ; i<jsonObj.length(); i++)
                {                                       
                    JSONObject json_Data = jsonObj.getJSONObject(i);
                    String firstname = json_Data.getString("firstname");
                    String lastname = json_Data.getString("lastname");
                    String designation = json_Data.getString("designation");

                    JSONArray jsons1 = json_Data.getJSONArray("user");
                    for (int j = 0; j < jsons1.length(); j++) {

                        JSONObject jsonss = jsons1.getJSONObject(j);
                         String username = jsonss.getString("username");
                            String userid = jsonss.getString("userid");
                    }

                }
                }catch (JSONException e) {
                    Log.d("Failure","Dude I have failed");
                }

答案 2 :(得分:0)

解析:&#34;用户&#34;

   try {
        JSONArray jsonObj = new JSONArray(response);
        for(int i=0 ; i<jsonObj.length(); i++)
        {                                       
            JSONObject json_Data = jsonObj.getJSONObject(i);
            JSONObject user = json_Data.getJSONObject("user");
            String userName = user.getString("username");
            String userId = user.getString("userid");
            Log.d("Factors","UserName :- "+userName+" ID :- "+userId);
        }
        }catch (JSONException e) {
            Log.d("Failure","Dude I have failed");
        }

答案 3 :(得分:0)

JSONArray jresult = new JSONArray(response);

jresult = json.getJSONArray("user");
for (int i = 0; i < jresult .length(); i++) 
{
JSONObject obj  = jresult .getJSONObject(i);
String username=obj.getString("username");
int userid=obj.getInt("userid");
}

答案 4 :(得分:0)

if(result != null)
            {
                try
                {
                    JSONObject jobj = result.getJSONObject("result");

                    String status = jobj.getString("status");

                    if(status.equals("true"))
                    {
                        JSONArray array = jobj.getJSONArray("user");

                        for(int x = 0; x < array.length(); x++)
                        {
                            HashMap<String, String> map = new HashMap<String, String>();

                            map.put("username", array.getJSONObject(x).getString("username"));

                            map.put("userid", array.getJSONObject(x).getString("userid"));



                            list.add(map);
                        }

                        CalendarAdapter adapter = new CalendarAdapter(Calendar.this, list);

                        list_of_calendar.setAdapter(adapter);
                    }
                }
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
相关问题