Volley的自定义回复

时间:2017-06-04 16:46:24

标签: java android json android-volley

当我发出请求并且失败时,它会显示Toast并显示完整的响应错误,我只想要"消息"从它而不是整个JSON。

我想只显示消息,而不是整个JSON字符串。

这是我的 JSON 字符串:

{"status":false,"message":"message here"}

这是 onResponse 功能:

        @Override
        public void onResponse(String response){
            try {
                JSONObject volleyResponse = new JSONObject(response);

                boolean success = volleyResponse.getBoolean("success");
                final String message = volleyResponse.getString("message");

                if(success){
                    messageText.setText("success");
                }
            } catch(JSONException e) {
                Toast.makeText(Authentication.this, response, Toast.LENGTH_LONG).show();
            }
        }

1 个答案:

答案 0 :(得分:0)

根据定义,这是不可能的。

有两个主要的失败案例。一个是如果你遇到某种网络问题,在这种情况下onResponse()没有被调用,你没有任何JSON可以使用。

上面的代码中显示的另一个是,如果您有JSON解析错误。在这种情况下,您无法获取消息,因为消息是在JSON中,并且您无法解析该JSON。您在Toast中显示的内容不是有效的JSON(否则,您将不会获得JSONException)。

在您的异常处理程序中,添加:

Log.e("heyoooooo", "Exception parsing JSON", e);

然后,look at the Java stack trace以查看有关特定解析错误的更多详细信息。