Android JSON解析
我有一个json响应:Android JSON解析,android,json,Android,Json,我有一个json响应: [{"id":"1","cat":"A","pic":"false","sector":"1"},{"id":"2","cat":"B","pic":"true","sector":"2"}] 我需要在android上解析它 我有以下代码: JSONObject obj = new JSONObject(response); JSONArray jsonArray = obj.getJSONArray(""); JSONObject jsonObject = jsonA
[{"id":"1","cat":"A","pic":"false","sector":"1"},{"id":"2","cat":"B","pic":"true","sector":"2"}]
我需要在android上解析它
我有以下代码:
JSONObject obj = new JSONObject(response);
JSONArray jsonArray = obj.getJSONArray("");
JSONObject jsonObject = jsonArray.getJSONObject(0);
Log.d("ID -> ", jsonObject.getString("id"));
Log.d("CAT -> ", jsonObject.getString("cat"));
但它不起作用
如果我的结果是:
{ "data":[{"id":"1","cat":"A","pic":"false","sector":"1"},{"id":"2","cat":"B","pic":"true","sector":"2"}]}
我在中修改了代码:
JSONArray jsonArray = obj.getJSONArray("data");
它起作用了
我如何解析我的第一个json响应(没有“数据”)
谢谢。您应该使用下一个代码:
JSONArray jsonArray = new JSONArray(response);
JSONObject jsonObject = jsonArray.getJSONObject(0);
Log.d("ID -> ", jsonObject.getString("id"));
Log.d("CAT -> ", jsonObject.getString("cat"));
因为json中没有对象,而是数组,所以应该创建数组而不是对象。这就是为什么你的修改是有效的。因为在修改后的代码中,“数据”是一个对象(JSONObject)
那么
List datas=gson.fromJson(字符串\u为\u json\u数组,新的TypeToken(){}.getType());
用于(数据项:数据){
字符串pic=item.getPic();
}
try-JSONArray-JSONArray=new-JSONArray(响应);然后类似于for(inti=0;inewjsonobject(response)代码>为什么<代码>obj.getJSONArray(“”)代码>你认为这是什么?这是我想说的更好的版本嗨,我试过你的代码,但我有一个错误:“不能从静态上下文引用”<代码>JSONArray JSONArray=新JSONArray(响应);List data=Gson.fromJson(响应,new-TypeToken(){}.getType())代码>错误参考“响应”
JSONArray array = new JSONArray(string_of_json_array);
for (int i = 0; i < array.length(); i++) {
JSONObject row = array.getJSONObject(i);
id = row.getInt("id");
pic = row.getString("pic");
}
public class Data{
int id;
String cat;
String pic;
String sector;
//setter and getter
}
List<Data> datas = gson.fromJson(string_of_json_array, new TypeToken<List<Data>>(){}.getType());
for(Data item: datas){
String pic = item.getPic();
}