AM使用android volley发送请求并获得此类响应
public void onResponse(JSONObject response
try {
String responsedata = response.getString("data");
Log.i("test",responsedata);
} catch (JSONException e) {
e.printStackTrace();
}
}
以上日志打印
[{"id":1,"identifier":"TYam Plant","header_val":"tyamplant"},
{"id":2,"identifier":"Touron Plant","header_val":"toroun"}
]
现在我想循环遍历这些并提取
的各个属性的数组id, identifier, header_val
我该如何解决这个问题。我还是java的新手
答案 0 :(得分:4)
您的回复是
JSONArray
而不是JSONObject
检查
您需要使用 JSONArray
请求,而不是JSONObject
的 volley
请求
尝试这样解析你的json
try {
JSONArray jsonArray= new JSONArray(responsedata);
for (int i=0;i<jsonArray.length();i++){
JSONObject object=jsonArray.getJSONObject(i);
String id=object.getString("id");
String identifier=object.getString("identifier");
String header_val=object.getString("header_val");
}
} catch (JSONException e) {
e.printStackTrace();
}
解析您的JSON
的预先存在的对象
Gson
是一个Java库,可用于将Java对象转换为JSON
表示形式。它还可用于将JSON
字符串转换为等效的Java对象。Gson
可以处理任意Java对象,包括您没有源代码
答案 1 :(得分:0)
public class YourObject {
private String id;
private String identifier;
private String header_val;
public YourObject(String id, String identifier, String header_val) {
this.id = id;
this.identifier = identifier;
this.header_val = header_val;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getHeader_val() {
return header_val;
}
public void setHeader_val(String header_val) {
this.header_val = header_val;
}
}
&#13;
List<YourObject> yourList = new ArrayList<>();
try {
JSONArray jsonArray= new JSONArray(responseString);
for (int i=0; i<jsonArray.length();i++){
JSONObject object=jsonArray.getJSONObject(i);
String id=object.getString("id");
String identifier=object.getString("identifier");
String header_val=object.getString("header_val");
yourList.add(new YourObject(id, identifier, header_val);
}
} catch (JSONException e) {
e.printStackTrace();
}
&#13;