我正在向 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响应正在寻找“数据”部分。但我需要它来查找消息部分。我怎样才能做到这一点?
1 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
这一行是data
访问值的地方:
realm.copyToRealm(changeModelVersionResponse.data);
如果您的ChangeModelVersionResponse
类型已经包含一个messages
字段,您可以将其更新为类似的内容(具体语法可能略有不同,具体取决于 Realm API):
realm.copyToRealm(changeModelVersionResponse.messages);
如果您的ChangeModelVersionResponse
类型尚未包含messages
字段,则需要先添加该字段(并创建它所依赖的任何类),然后才能更新上面的行。
添加回答
举报
0/150
提交
取消