-1

我有这个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。请帮我

4

3 回答 3

2

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

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

于 2013-01-27T20:57:31.670 回答
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;
}

当然,您应该返回一个名称数组或任何您想要的..

于 2013-01-27T20:58:21.977 回答
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();
    }
}

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

希望能帮助到你。

于 2013-01-27T21:03:49.487 回答