簡體   English   中英

如何使用 android 和 Java 中的 Volley 庫在 android 中檢索該響應

[英]How can I retrieve that response in android using Volley library in android and Java

來自 API 的所有數據

[
    {
        "id": 1,
        "category": "Exercitationem perspiciatis quae ab facilis ratione quo.",
        "description": "ut",
        "amount": 6,
        "user": "Colten Paucek",
        "date": "2020-09-25T12:34:01.000000Z"
    },
    {
        "id": 2,
        "category": "Odit non nostrum possimus.",
        "description": "facere",
        "amount": 6,
        "user": "Colten Paucek",
        "date": "2020-09-25T12:34:01.000000Z"
    }
]

以上數據是 API 響應,我想使用 java android 中的 Volley 庫獲取這些數據

我的 Java 代碼

下面的代碼是從我的 API 中獲取數據的 java 方法

private void loadExpenseFromApi(){
     StringRequest sr = new StringRequest(Request.Method.GET, Constants.EXPENSE_URL, new Response.Listener<String>() {
         @Override
         public void onResponse(String response) {
             try {
                 JSONObject jo = new JSONArray(response);
                 for(int i=0; i< jo.length(); i++) {
                     ListExpenses le = new ListExpenses(
                             jo.getInt("id"),
                             jo.getString("category"),
                             jo.getString("description"),
                             jo.getInt("amount"),
                             jo.getString("date")
                     );
                 }

             } catch (JSONException e) {
                 e.printStackTrace();
             }
         }
     }, new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError error) {
             error.printStackTrace();
         }
     }

     );
 }

我將StringRequest sr = new StringRequest(Request.Method.GET, Constants.EXPENSE_URL, new Response.Listener<String>() {替換為一個名為 JsonArrayRequest 的類來調用 API JsonArrayRequest jar = new JsonArrayRequest(Constants.EXPENSE_URL, new Response.Listener<JSONArray>() {

完整的代碼看起來像這樣

private void loadExpenseFromApi(){

     JsonArrayRequest jar = new JsonArrayRequest(Constants.EXPENSE_URL, new Response.Listener<JSONArray>() {
         @Override
         public void onResponse(JSONArray response) {
             try {
                 for(int i=0; i< response.length(); i++) {
                     JSONObject jo = response.getJSONObject(i);
                     ListExpenses le = new ListExpenses(
                             jo.getString("id"),
                             jo.getString("category"),
                             jo.getString("description"),
                             jo.getString("amount"),
                             jo.getString("date")
                     );
                     listExpense.add(le);
                     adapter = new ExpenseAdapter(listExpense, getContext());
                     recyclerView.setAdapter(adapter);

                 }

             } catch (JSONException e) {
                 e.printStackTrace();
             }
         }
     }, new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError error) {
             Log.e("Volley", error.toString());
             error.printStackTrace();
         }
     }
     );
     RequestHandler.getInstance(getContext()).addToRequestQueue(jar);
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM