为onResponse方法Volley中的字符串赋值

时间:2016-09-16 15:21:36

标签: json android-volley

Okey,我试图获得一个Json响应并使用Volley将其作为字符串返回。我有一个名为getWeatherData的方法,它返回String,这是来自JSONObjectRequest响应的JsonObject。在那个方法中,我创建了一个名为request的JsonObjectRequest,其中包含我的API的url,它返回一个响应的JSON对象。

现在我想把{JSON对象放在{{ 1}}方法,但我无法弄清楚如何做到这一点。我试图在我的onResponse函数中创建一个字符串,而getWeatherData方法内部只是将该值赋给返回的JSONObject,但我得到语法错误'变量从内部类需要访问被宣布为最终'

onResponse

我想要的只是从public String getWeatherData(String place){ String getJsonData; JsonObjectRequest request = new JsonObjectRequest(Utils.BASE_URL1 + place + Utils.BASE_URL2, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { getJsonData = response.toString(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d("json_retrieving-problem",error.getMessage()); } }); 方法中检索JSONObject response,然后将该值作为字符串返回。

1 个答案:

答案 0 :(得分:0)

如果你在同一个班级,

你可以定义一个函数,returnMyString()喜欢,

private void returnMyString(String myString) {
        //do your stuff 
}

然后在JsonRequest

JsonObjectRequest request = new JsonObjectRequest(Utils.BASE_URL1 + place + Utils.BASE_URL2, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            //call the function defined to return string
            returnMyString(response.toString());
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("json_retrieving-problem",error.getMessage());
        }
    });

或者如果您想要回调,请定义一个接口并在接口中调用该方法,如this