我有这个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。请帮帮我
答案 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();
}
}
您需要修改循环以存储或使用数据。
希望它有所帮助。