初次使用volley来解析json数据,最初是想着可以直接把每个字段都能取出来的,结果是我想多了!
方法比较粗糙,不过意思大体到位了
private void getJsonVolley() {
RequestQueue queue = Volley.newRequestQueue(this);
String JsonUrlData = "http://ts.cdn.duihao.net/json/?f=thumb&catid=2";
// final ProgressDialog dialog = ProgressDialog.show(this,
// "this is laoding",
// "laoding");
JsonArrayRequest jsonObjectRequest = new JsonArrayRequest(JsonUrlData,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// VolleyLog.v("Response:%n %s", response.toString());
Log.i("log", response.toString());
arrayList = new ArrayList<PicBean>();
for (int i = 0; i < response.length(); i++) {
JSONObject object;
try {
object = (JSONObject) response.get(i);
PicBean m_list = new PicBean(object.getInt("id"),
object.getString("thumb"),
object.getString("url"));
arrayList.add(m_list);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message m = new Message();
m.what = 1;
m.obj = arrayList;
handler.sendMessage(m);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
// VolleyLog.e("Error: ", error.getMessage());
}
});
queue.add(jsonObjectRequest);
}
我是直接使用了
JsonArrayRequest ,因为不涉及到传对象,就没有去序列化它,使用volley得到的是response,这个就是我们的JsonArray对象,想要使用具体字段,就需要去循环得到了