为了账号安全,请及时绑定邮箱和手机立即绑定

Gson/Volley Android 从响应中获取消息而不是数据

Gson/Volley Android 从响应中获取消息而不是数据

慕虎7371278 2021-09-29 13:08:44
我正在向 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字段,则需要先添加该字段(并创建它所依赖的任何类),然后才能更新上面的行。


查看完整回答
反对 回复 2021-09-29
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信