Volley及FastJson的簡單使用
阿新 • • 發佈:2019-01-10
Volley的簡單使用
介紹:Volley是Google開發的一個進行聯網操作的框架,一般針對於聯網的內容比較小的時候使用起來會非常方便。步驟如下:
1.將Volley的jar包匯入到bins目錄的檔案下,在android studio中一定要記得還要手動進行一下新增。
2.RequestQueue 定義一個成員變數RequestQueue物件requestQueue,一般在oncreate()方法中進行建立,RequestQueue
requestQueue=Volley.newRequestQueue(this);
3.在合適的方法中進行請求操作,比如在Button的點選事件中進行Get請求,針對不同的返回資料型別,一般有StringRequest,
JsonObjectRequest,ImageRequest三種請求方式,以StringRequest為例:StringRequest stringRequest=new StringRequest(參
數一,引數二,引數三,引數四);
引數一:請求方法,如:StringRequest.Method.GET
引數二:請求地址,url
引數三:Listener型別 ,接收網路響應的介面,即只要得到本次請求對應的返回結果就會執行此介面中的onResponse方法。
引數四:ErrorListener型別,用於接收當網路請求的過程中一旦發生了什麼錯誤,就會呼叫本介面中的onErrorResponse方法。
4.設定請求Tag,以方便解除,如:stringRequest.setTag("GET");
5.將請求新增到請求對列中,執行網路任務。方法為:requestQueue.add(stringRequest)。 沒有該方法,將無法進行聯網下載
6.Post方式相對Get方式有一些不同,主要在於:請求條件的指定必須在StringRequest物件的後面新增{},並且
在{}內重寫getParams方法,該方法的返回值就是所有的請求條件,請求條件用Map型別來進行鍵值對的儲存,返回map即可
7.JsonObjectRequest的GET請求方式和StringRequest方式基本相同,POST方式不同之處在於:首先,需要生成一個JSONObject類
型的物件,並通過put方法將請求條件通過鍵值對的方式儲存,然後在生成JsonObjectRequest物件時,通過一個五個引數的構造方
法,第三個引數就是JSONObject型別的帶有請求條件的物件,其他四個引數和StringRequest相同。
FastJson是阿里巴巴公司開發的Json資料解析框架,號稱解析資料最快。使用方法:
1.導jar包
2.一般在獲得json資料的後進行資料的載入解析操作,一般是在JsonObjectRequest第三個引數的回撥方法中呼叫
但是在呼叫之前,第一步要對解析的資料進行型別封裝,屬性封裝一定要先看看解析的格式和型別,一般此時會有JSONJArray類
型的屬性,一定再對該型別進行類的封裝,直到都為單一屬性即可。此時,一定要對封裝的類進行一個無參的構造方法。
比如:MeLiShuo ms = com.alibaba.fastjson.JSONObject.parseObject(jsonObject.toString(),MeLiShuo.class);
美麗說資料介面型別,引數一為json資料,引數二為資料型別.class
list.addAll(ms.getData());Data為其ArrayJSON型別,有過封裝之後,傳入list集合,在介面卡中進行載入。
介紹:Volley是Google開發的一個進行聯網操作的框架,一般針對於聯網的內容比較小的時候使用起來會非常方便。步驟如下:
1.將Volley的jar包匯入到bins目錄的檔案下,在android studio中一定要記得還要手動進行一下新增。
2.RequestQueue 定義一個成員變數RequestQueue物件requestQueue,一般在oncreate()方法中進行建立,RequestQueue
requestQueue=Volley.newRequestQueue(this);
3.在合適的方法中進行請求操作,比如在Button的點選事件中進行Get請求,針對不同的返回資料型別,一般有StringRequest,
JsonObjectRequest,ImageRequest三種請求方式,以StringRequest為例:StringRequest stringRequest=new StringRequest(參
數一,引數二,引數三,引數四);
引數一:請求方法,如:StringRequest.Method.GET
引數二:請求地址,url
引數三:Listener型別 ,接收網路響應的介面,即只要得到本次請求對應的返回結果就會執行此介面中的onResponse方法。
引數四:ErrorListener型別,用於接收當網路請求的過程中一旦發生了什麼錯誤,就會呼叫本介面中的onErrorResponse方法。
4.設定請求Tag,以方便解除,如:stringRequest.setTag("GET");
5.將請求新增到請求對列中,執行網路任務。方法為:requestQueue.add(stringRequest)。
6.Post方式相對Get方式有一些不同,主要在於:請求條件的指定必須在StringRequest物件的後面新增{},並且
在{}內重寫getParams方法,該方法的返回值就是所有的請求條件,請求條件用Map型別來進行鍵值對的儲存,返回map即可
7.JsonObjectRequest的GET請求方式和StringRequest方式基本相同,POST方式不同之處在於:首先,需要生成一個JSONObject類
型的物件,並通過put方法將請求條件通過鍵值對的方式儲存,然後在生成JsonObjectRequest物件時,通過一個五個引數的構造方
法,第三個引數就是JSONObject型別的帶有請求條件的物件,其他四個引數和StringRequest相同。
FastJson的簡單使用<span style="font-size:18px;">public class MainActivity extends Activity { RequestQueue queue; private String url = "http://mobapi.meilishuo.com/2.0/express/recommend_entrance?imei=000000000000000&mac=08%3A00%3A27%3A51%3A2e%3Aaa&qudaoid=11601&access_token=6c5428735c0a46cbd4bd0ac53fd9da30&st=1429002510&_sign=bf62212d98e50df072288c9e86077939467f9b10"; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); queue = Volley.newRequestQueue(this); } public void click(View v) { switch (v.getId()) { case R.id.stringGet: //GET請求的處理 StringRequest request = new StringRequest(StringRequest.Method.GET, url, new Response.Listener<String>() { //引數代表本次網路請求的結果 @Override public void onResponse(String s) { tv.setText(s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Toast.makeText(MainActivity.this, "出錯原因:" + volleyError.getMessage(), Toast.LENGTH_SHORT) .show(); } }); //三,給請求物件設定tag標識 request.setTag("get"); //四,將請求新增到請求佇列中,執行網路請求 queue.add(request); break; case R.id.stringPost: //實現post請求 StringRequest post = new StringRequest(StringRequest.Method.POST, "http://mobapi.meilishuo.com/2.0/express/recommend_entrance", new Response.Listener<String>() { @Override public void onResponse(String s) { tv.setText(s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { //將請求條件封裝到map物件中 Map<String, String> map = new HashMap<String, String>(); map.put("imei", "000000000000000"); map.put("mac", "08%3A00%3A27%3A51%3A2e%3Aaa"); map.put("qudaoid", "11601"); map.put("access_token", "6c5428735c0a46cbd4bd0ac53fd9da30"); map.put("st", "1429002510"); map.put("_sign", "bf62212d98e50df072288c9e86077939467f9b10"); return map; } }; post.setTag("post"); queue.add(post); break; case R.id.jsonPost: JSONObject object = new JSONObject(); try { object.put("imei", "000000000000000"); object.put("mac", "08%3A00%3A27%3A51%3A2e%3Aaa"); object.put("qudaoid", "11601"); object.put("access_token", "6c5428735c0a46cbd4bd0ac53fd9da30"); object.put("st", "1429002510"); object.put("_sign", "bf62212d98e50df072288c9e86077939467f9b10"); } catch (JSONException e) { e.printStackTrace(); } JsonObjectRequest jsonPost = new JsonObjectRequest( JsonObjectRequest.Method.POST, "http://mobapi.meilishuo.com/2.0/express/recommend_entrance", object,//jsonObject型別的物件,此物件用於設定本次網路請求的請求條件 new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { tv.setText(jsonObject.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } } ); jsonPost.setTag("jsonpost"); queue.add(jsonPost); break; } } } </span>
FastJson是阿里巴巴公司開發的Json資料解析框架,號稱解析資料最快。使用方法:
1.導jar包
2.一般在獲得json資料的後進行資料的載入解析操作,一般是在JsonObjectRequest第三個引數的回撥方法中呼叫
但是在呼叫之前,第一步要對解析的資料進行型別封裝,屬性封裝一定要先看看解析的格式和型別,一般此時會有JSONJArray類
型的屬性,一定再對該型別進行類的封裝,直到都為單一屬性即可。此時,一定要對封裝的類進行一個無參的構造方法。
比如:MeLiShuo ms = com.alibaba.fastjson.JSONObject.parseObject(jsonObject.toString(),MeLiShuo.class);
美麗說資料介面型別,引數一為json資料,引數二為資料型別.class
list.addAll(ms.getData());Data為其ArrayJSON型別,有過封裝之後,傳入list集合,在介面卡中進行載入。