簡體   English   中英

Volley JSONObjectRequest 和 JSONArrayRequest 都給出錯誤 Android Java

[英]Volley JSONObjectRequest and JSONArrayRequest both are giving errors Android Java

我正在嘗試按如下方式解析 JSON 數據:

{"Returnresult":[{"api_status":"1","user_temp_id":"280","otp":"1234"}]}

我按照 Android Developer 網站上給出的教程進行了嘗試

  String url = "some url";

    RequestQueue queue = Volley.newRequestQueue(this);
    JsonArrayRequest jsonArrayRequest;
    jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
            response -> {

                String api_status = null;
                try {
                    JSONArray obj = response.getJSONArray(0);
                    api_status = obj.getString(0);
                    System.out.println(" api_status is" + api_status);
               
                      if (api_status.equals("1")) {
                      //some code
                      }

我被困在

JSONArray obj = response.getJSONArray(0); // Tried as array this time
  1. 如果我嘗試將其作為 JSONArray 獲取,則錯誤顯示“....of type org.json.JSONObject 無法轉換為 JSONArray”,當我嘗試時:

    JSONObject obj = response.getJSONObject(0);

  2. 如果我嘗試將其作為 JSONObject 獲取,則錯誤顯示“....of type org.json.JSONArray 無法轉換為 JSONObject”,並且 JSONObjectRequest 位於頂部

請幫忙 !

根據 Dharmender 編輯代碼:

  RequestQueue requestQueue = Volley.newRequestQueue(trial1.this);

        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
                response ->  {
                    System.out.println(response.toString());
                       try {
                           JSONObject json = new JSONObject(response.toString());
                           JSONArray returnresult = json.getJSONArray("Returnresult");

                           for(int countItem = 0;countItem<returnresult.length();countItem++){
                               JSONObject returnObject = returnresult.getJSONObject(countItem);
                               String apiStatus=returnObject.isNull("api_status")?"":returnObject.optString("api_status");
                               System.out.println("Status is "+apiStatus);
                           }
                    } catch (JSONException e) {
                           e.printStackTrace();
                       }

嘗試使用以下代碼。

    RequestQueue requestQueue = Volley.newRequestQueue(trial1.this);

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, url, null,
            response ->  {
                System.out.println(response.toString());
                   try {
                       JSONObject json = new JSONObject(response.toString());
                       JSONArray returnresult = json.getJSONArray("Returnresult");

                       for(int countItem = 0;countItem<returnresult.length();countItem++){
                           JSONObject returnObject = returnresult.getJSONObject(countItem);
                           String apiStatus=returnObject.isNull("api_status")?"":returnObject.optString("api_status");
                           System.out.println("Status is "+apiStatus);
                       }
                } catch (JSONException e) {
                       e.printStackTrace();
                   }

暫無
暫無

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

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