Android:如何使用截取从方法返回异步JSONObject?

Android:如何使用截取从方法返回异步JSONObject?,android,json,android-asynctask,android-volley,Android,Json,Android Asynctask,Android Volley,我试图通过以下方式获取JSON对象: JSONObject jsonObject = http.makeRequest("GET", "https://api.twitter.com/1.1/search/tweets.json", null); 处理所有HTTP请求的一般方法如下 public void makeRequest(String method, String url, Array params) { // Request a string response from t

我试图通过以下方式获取JSON对象:

JSONObject jsonObject = http.makeRequest("GET", "https://api.twitter.com/1.1/search/tweets.json", null);
处理所有HTTP请求的一般方法如下

public void makeRequest(String method, String url, Array params) {

    // Request a string response from the provided URL.
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(getRequestMethod(method),
            url,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    processResponse(Constants.Global.SUCCESS, null, response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    try {
                        mStatusCode = error.networkResponse.statusCode;
                        VolleyLog.d(Constants.Global.ERROR, "Error: " + error.getMessage());
                        Logger.e(error.getMessage());
                    } catch (Exception e) {
                        Logger.e(e.getMessage());
                        mStatusCode = 0;
                    }
                    Logger.e(mStatusCode.toString());
                    processResponse(Constants.Global.ERROR, mStatusCode, null);
                }
            });
    // Add tag to request for bulk cancelling
    //jsonObjReq.setTag()
    queue.add(jsonObjReq);
}
我想问一下如何以异步方式返回JSONObject(第一个代码段)

所有请求都使用Volley库进行处理

非常感谢您的建议。

谢谢您的评论


我认为异步是由Volley自动提供的。所以我需要 知道如何将JSON数据放入第一个代码段

在我看来,您可以尝试以下方法(当然,您可以用
JSONObject
request替换
JSONArray
request),而不是第一个代码片段:

makeJsonArrayRequest的主体可以如下所示:

private JSONObject processResponse(String resultState, Integer httpStatusCode, JSONObject responseData) {
        try {
            // First check that result state is error or the success
            if (resultState.equals(Constants.Global.SUCCESS)) {
                Logger.i("Response is success");
                Logger.i(responseData.toString());
                //TODO: ADD SUCCESS OBJECT CREATION
            }
            if (resultState.equals(Constants.Global.ERROR)) {
                Logger.e("Response is error");
                //TODO: ADD ERROR HANDLING AND ERROR OBJECT CREATION
            }

        } catch(Exception e) {
            e.printStackTrace();
            Logger.e(e.getMessage());
        }
        return responseData;
    }
    public void makeJsonArrayRequest(Context context, int method, String url, String requestBody, final VolleyResponseListener listener) {
        JSONObject jsonRequest = null;        
        try {
            ...
            if (requestBody != null) {
                jsonRequest = new JSONObject(requestBody);
            }
            ...
        } catch (JSONException e) {
            e.printStackTrace();
        }

        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(method, url, jsonRequest, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray jsonArray) {
                listener.onResponse(jsonArray);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                listener.onError(error.toString());
            }
        });

        // Access the RequestQueue through singleton class.
        MySingleton.getInstance(context).addToRequestQueue(jsonArrayRequest);
    }
public interface VolleyResponseListener {
    void onError(String message);

    void onResponse(Object response);
}

看看你的需求是喜欢还是不喜欢谢谢Yopu,但我认为不是,我想知道如何处理一些适合我需求的代码示例。实际上,我仍然无法理解你的异步在这里意味着什么?根据,它已经是异步的(…
,从网络异步获取数据。
)我认为异步是由Volley自动提供的。所以我需要知道如何将JSON数据放入第一个代码段中。谢谢,这看起来是一个很好的解决方案,但我不明白使用MySingleton类到底意味着什么。我需要一些例子。
public interface VolleyResponseListener {
    void onError(String message);

    void onResponse(Object response);
}