在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
相关产品推荐
相关产品推荐

