Android高级之Volley框架(二):JsonRequest

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);
    }
}

这样就完成了!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值