我绝对是Android的初学者。现在我开始学习抽象HTTP请求和响应。我将响应数据绑定到Listview。我正在做这样的http获取请求。如何在Android中处理JsonObjectRequest数组和对象集合的响应json Volley
这是我与凌空要求
public class VolleyActivity extends Activity{
private int lastSawFirstListItem;
private int itemLoadedOn;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.volley_main);
Button getBtn = (Button)findViewById(R.id.btn_get_request);
getBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
ListView listView = (ListView)findViewById(R.id.volleyListView);
adapter = new CustomAdapter(this,new Entity[0]);
listView.setAdapter(adapter);
String url = "http://api.androidhive.info/feed/feed.json";
JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
List<Entity> items = new ArrayList<Entity>();
try{
jsonObject = jsonObject.getJSONObject("feed");
//Then how to handle my response collection here
//because this is the combination of array and object collection
}
catch (JSONException e)
{
Toast.makeText(getBaseContext(),"JSON exception",Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
});
Volley.newRequestQueue(getBaseContext()).add(jsonRequest);
}
public Entity convertToEntity(JSONObject item) throws JSONException
{
Entity en = new Entity();
en.setId(item.getInt("id"));
en.setName(item.getString("name"));
en.setName(item.getString("url"));
return en;
}
}
这项活动类的JSON链接,我请求http://api.androidhive.info/feed/feed.json
所以请我怎么处理这个组合?我已经做出抛出错误的ArrayRequest。
我处理的响应回调这样
try{
jsonObject = jsonObject.getJSONObject("feed");
for(int i=0;i<jsonObject.length();i++){
StringBuilder sb = new StringBuilder();
sb.append(i);
String name = jsonObject.getJSONObject(sb.toString()).getString("name");
}
Toast.makeText(getBaseContext(),"ok",Toast.LENGTH_SHORT).show();
}
catch (JSONException e)
{
Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
}
请发布错误。排队请求队列也可以做成一个单例实例。 您可以使用Gson基于POJO进行反序列化。 – TheSunny
这个ObjectRequest不会抛出错误。我只是想知道如何遍历和处理。因为我从来没有这样做过。 –
ArrayRequest将json结果数组作为错误消息抛出。 –