解析android中的复杂json

时间:2013-01-27 20:50:46

标签: android json parsing

我有这个json:

[{"id":"1","name":"john"},{"id":"2","name":"jack"},{"id":"3","name":"terry"}]

我怎么解析这个?我必须使用循环来提取每个组?对于简单的jsons我使用此代码:

    public static String parseJSONResponse(String jsonResponse) {

    try {

         JSONObject  json = new JSONObject(jsonResponse);

           // get name & id here
         String  name = json.getString("name");
         String  id =  json.getString("id");

    } catch (JSONException e) {

        e.printStackTrace();
    }

    return name;
}

但现在我必须解析我的新json。请帮帮我

3 个答案:

答案 0 :(得分:2)

这意味着要由 JSONArray 解析,然后每个“记录”都是 JSONObject

您可以循环数组,然后使用getString(int)方法检索每条记录的JSON字符串。然后使用此字符串构建 JSONObject ,并像现在一样提取值。

答案 1 :(得分:2)

应该是这样的:

public static String parseJSONResponse(String jsonResponse) {

try {

    JSONArray jsonArray = new JSONArray(jsonResponse);

    for (int index = 0; index < jsonArray.length(); index++) {
        JSONObject  json = jsonArray.getJSONObject(index);

        // get name & id here
        String  name = json.getString("name");
        String  id =  json.getString("id");
    } 



} catch (JSONException e) {

    e.printStackTrace();
}

return name;
}

当然你应该返回一系列名字或任何你想要的东西..

答案 2 :(得分:1)

您可以使用以下代码:

public static void parseJSONResponse(String jsonResponse) {

    try {

        JSONArray jsonArray = new JSONArray(jsonResponse);     
        if(jsonArray != null){
            for(int i=0; i<jsonArray.length(); i++){
                JSONObject json = jsonArray.getJSONObject(i);
                String  name = json.getString("name");
                String  id =  json.getString("id"); 
                //Store strings data or use it
            }
        }
    }catch (JSONException e) {
        e.printStackTrace();
    }
}

您需要修改循环以存储或使用数据。

希望它有所帮助。