将 JSON 对象的值赋给本地变量时遇到问题,调试器显示变量 'this' 不可用。

3

第一次正常工作,经过一些测试后我遇到了这个问题。

我无法从Json对象中获取值,Json数组没问题,但是值没有赋值。

我使用的是Android Studio,使用Volley从Web服务器获取Json格式的响应。

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' is not Available”。

听起来你只在IDE调试时遇到了这个问题。你触发了一个断点,窗口中的语句是udo_entry_max_BAR = this - Wheeler
我无法从Json对象中获取值,我已经设置了断点,它显示udo_entry_max_BAR = 'this'不可用。 - Joe
1个回答

2

这只在调试器窗口中显示,你可以在执行完成后获取值。

原始答案翻译为"最初的回答"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接