У меня проблема с назначением значения из объекта JSON в локальную переменную, отладчик показывает переменную = 'это' недоступно - PullRequest
3 голосов
/ 22 июня 2019

В первый раз, когда он работает нормально, после некоторого тестирования у меня возникла эта проблема.

Я не могу получить значение из Json Object, Json Array в порядке, но значение не задано.

Am Использование Andorid Studio, Volley используется для получения ответа от веб-сервера в Json Format.

StringRequest postRequest = new StringRequest(StringRequest.Method.POST, syncURL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try{
                            long TempResponse = response.length();
                            if (TempResponse <= 2){
                                udo_Core.udfShowMessage("Error","Error In Getting Data From Server!",udo_temp_activity);
                            }else {
                                JSONArray arr = new JSONArray(response);
                                for (int i = 0; i < arr.length(); i++) {
                                    JSONObject mJsonObject = arr.getJSONObject(i);
                                    try{
                                        udo_entry_max_BAR = mJsonObject.getLong("maxentryno");
                                        udo_entry_min_BAR = mJsonObject.getLong("minentryno");
                                        udo_entry_no_BAR  = udo_entry_min_BAR;
                                        udo_entry_no_MAX  = udo_entry_max_BAR;
                                    }catch (Exception e){
                                        e.printStackTrace();
                                    }

                                    //udo_PRB_Limit       = 100/(udo_entry_max_BAR-udo_entry_min_BAR);
                                }

                            }
                        }catch (JSONException e){
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener()
                {   @Override
                    public void onErrorResponse(VolleyError error){
                        error.printStackTrace();
                    }
                }
        ){
            @Override
            protected Map<String, String> getParams()
            {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("query", udoQuery);
                params.put("type", type);
                params.put("companycode", "");
                params.put("p_fm_loc", "");
                params.put("p_to_loc", "");
                params.put("p_fm_date", "");
                params.put("p_to_date", "");
                return params;
            }
        };
        postRequest.setRetryPolicy(new DefaultRetryPolicy(12000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        udoVolleyQuery.add(postRequest);

во время отладки, внутри значения присвоения циклаиз объекта Json в локальную переменную, но в окне отладчика отображается "udo_entry_max_BAR = 'this' недоступен"

1 Ответ

2 голосов
/ 22 июня 2019

Это отображается только в окне отладчика, вы получаете значение после завершения выполнения.

...