You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Volley中解析JSON响应,判断failure是否为0的Java技术咨询

解决Volley响应中判断failure是否为0的问题

嘿,这事儿很简单,你只需要在onResponse方法里把返回的字符串解析成JSON对象,然后取出failure字段做判断就行啦。我帮你修改了代码,加上了完整的解析和判断逻辑:

StringRequest stringRequest = new StringRequest(Request.Method.POST, CONN_URL.send_single_push, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try {
            // 将响应字符串转换为JSONObject
            JSONObject pushResponse = new JSONObject(response);
            // 获取failure字段的数值
            int failureCount = pushResponse.getInt("failure");
            
            // 判断failure是否为0
            if (failureCount == 0) {
                Toast.makeText(getActivity(), "推送发送成功!", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getActivity(), "共" + failureCount + "条推送发送失败", Toast.LENGTH_LONG).show();
            }
        } catch (JSONException e) {
            // 捕获JSON解析异常,避免崩溃
            e.printStackTrace();
            Toast.makeText(getActivity(), "响应解析出错:" + e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        // 处理请求失败的情况
        Toast.makeText(getActivity(), "请求失败:" + error.getMessage(), Toast.LENGTH_LONG).show();
    }
});

// 别忘了把请求加入Volley的请求队列
Volley.newRequestQueue(getActivity()).add(stringRequest);

几个注意点:

  • 确保你已经导入了org.json.JSONObject和org.json.JSONException这两个类,不然代码会报错;
  • 一定要加try-catch捕获JSONException,因为如果服务器返回的响应格式不是预期的JSON,或者failure字段不存在/类型不对,都会抛出异常,提前处理能避免APP崩溃;
  • 如果之后需要查看更详细的结果(比如results里的message_id),可以继续解析pushResponse.getJSONArray("results")来获取。

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:26:23