JsonRequest和StringRequest步骤基本相同,没有新的知识点,按以下步骤实现:
1.创建请求队列的对象
2.创建Json请求对象
3.讲Json请求对象加入请求队列中
具体代码如下:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private RequestQueue requestQueue;
private String path="http://sns.maimaicha.com/api?apikey=b4f4ee31a8b9acc866ef2afb754c33e6&format=json&method=news.getHeadlines";
private JsonObjectRequest jsonObjectRequest;
private String TAG="TAG";
//数据源,自定义了一个实体类Tea
private List<Tea> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView= (TextView) findViewById(R.id.textView);
// 第一步:创建请求队列
requestQueue = Volley.newRequestQueue(this);
// 第二步:创建JSON字符串对象
/**
1参:请求方式
2参:请求的路径,这是“茶百科”接口
3参:@nullable JsonObject jsonRequest,一般传null即可
4参;请求成功时回调的方法
5参:请求失败时回调的方法
*/
jsonObjectRequest= new JsonObjectRequest(Request.Method.GET, path, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
JSONArray array = null;
list=new ArrayList<Tea>();
try {
//json解析
array = jsonObject.getJSONArray("data");
for(int i=0;i<array.length();i++){
JSONObject jsonObject1=array.getJSONObject(i);
String id = jsonObject1.getString("id");
String source = jsonObject1.getString("source");
String wap_thumb = jsonObject1.getString("wap_thumb");
String create_time = jsonObject1.getString("create_time");
String nickname = jsonObject1.getString("nickname");
Tea tea=new Tea(id,source,wap_thumb,create_time,nickname);
//加入到数据源集合中
list.add(tea);
}
} catch (JSONException e) {
e.printStackTrace();
}
}//请求失败时回调
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
volleyError.printStackTrace();;
}
});
//第三步:将请求加入到请求队列中
requestQueue.add(jsonObjectRequest);
//设置一个标签,以便取消请求
jsonObjectRequest.setTag(TAG);
}
@Override
protected void onDestroy() {
super.onDestroy();
//取消请求
requestQueue.cancelAll(TAG);
}
}
这样就完成了!