我正在尝试排球库响应,这里我按照我的期望获得响应,但我无法将jsonobject返回到我的活动,我打算编写一个单独的方法,将在android中的应用程序给出响应,好吧,我现在要谈到这一点,
我有一个名为Util.java的类,在这个类中我返回了如下所示的jsonobject
public JSONObject fetchResponse() {
try {
JSONObject json = new JSONObject();
json = createStuff();
URL = "my url here" + json.toString();
final JsonObjectRequest volleyRes = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
//fetchRes = result(response);
//fetchRes = new JSONObject();
//fetchRes = new JSONObject(response.toString());
Log.w("UTIL res 61 ", fetchRes.toString());
// result(fetchRes);
} catch (Exception e) {
Log.w("UTILrespon error ", "" + e);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
Log.w("UTIL res error ", "" + e);
}
});
volleyRes.setRetryPolicy(new DefaultRetryPolicy(10000, 2, 2));
AppController.getInstance().addToRequestQueue(volleyRes);
Log.w("UTIL res 83 ", fetchRes.toString());
} catch (Exception e) {
Log.e("UTIL Error ", "" + e);
}
return fetchRes;
}
这里 fetchRes 是我在此方法之外声明的jsonobject
现在我的问题是,当我运行我的应用程序时,我可以从此方法获得响应
@Override
public void onResponse(JSONObject response) {
try {
// fetchRes = result(response);
// fetchRes = new JSONObject();
fetchRes = new JSONObject(response.toString());
Log.w("UTIL res 61 ", response.toString());
// result(fetchRes);
} catch (Exception e) {
Log.w("UTILrespon error ", "" + e);
}
}
一旦我得到了回复,我无法存储在另一个jsonobject中,并且无法返回到我在Android中的MainActivity.java ..所以请任何人帮我解决这个问题
提前致谢
答案 0 :(得分:0)
创建json对象的类并使用Gson库。它直接将json字符串转换为对象。
示例: -
Gson gson = new Gson();
MyBean myBean;
myBean = gson.fromJson(response.toString,MyBeans.class);
答案 1 :(得分:0)
Define an interface
interface FetResponseListener {
void onFetchResponse(JSONObject response);
}
将此接口作为参数传递给fetchResponse
public void fetchResponse(FetResponseListener listener) {
....
@Override
public void onResponse(JSONObject response) {
try {
listener.onFetchResponse(response);
} catch (Exception e) {
Log.w("UTILrespon error ", "" + e);
}
}
}
在您致电FetResponseListener
fetchResponse
fetchResponse(new FetResponseListener() {
@Override
public void onFetchResponse(JSONObject response) {
// use json response
}
});
或者只使用EventBus