【发布时间】:2019-02-23 17:53:27
【问题描述】:
我正在向 api 端点发出请求,当它失败时将在响应的消息部分中提供信息,如下所示:
{
"data":[],
"messages":{
"payment_required":{
"amount":"265.00"
}
},
"code":"",
"status":"failed",
"status_code":400
}
在 android 应用程序上,我正在处理 JsonObjectRequest,如下所示:
JsonObjectRequest jsonObjRequest = new JsonObjectRequest(Request.Method.PUT, url, data,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
changeColourInterface.requestSuccess();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null && networkResponse.data != null) {
String jsonError = new String(networkResponse.data);
Log.v("ChangeColour", jsonError);
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
ChangeModelVersionResponse changeModelVersionResponse = gson.fromJson(jsonError, ChangeModelVersionResponse.class);
realm.beginTransaction();
realm.copyToRealm(changeModelVersionResponse.data);
realm.commitTransaction();
changeColourInterface.requestFailed(changeModelVersionResponse.data);
}
}
});
queue.add(jsonObjRequest);
我进入了onErrorResponse 部分,但是当我尝试在 ChangeModelVersion 表中创建本地领域数据库行时,我收到错误消息。这是因为GSON 响应正在寻找“数据”部分。但我需要它来查找消息部分。
我怎样才能做到这一点?
【问题讨论】:
标签: java android realm android-volley gson