您的位置:首页 > 产品设计 > UI/UE

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

2015-11-08 21:24 519 查看
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);

    }

}


这样就完成了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 框架 网络 json