如何解决Volley JSONObjectRequest 和 JSONArrayRequest 都给出错误 Android Java
我正在尝试按如下方式解析 JSON 数据:
{"Returnresult":[{"api_status":"1","user_temp_id":"280","otp":"1234"}]}
我按照 Android Developer 网站上给出的教程进行了尝试
String url = "some url";
RequestQueue queue = Volley.newRequestQueue(this);
JsonArrayRequest jsonArrayRequest;
jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,url,null,response -> {
String api_status = null;
try {
JSONArray obj = response.getJSONArray(0);
api_status = obj.getString(0);
System.out.println(" api_status is" + api_status);
if (api_status.equals("1")) {
//some code
}
我被困在
JSONArray obj = response.getJSONArray(0); // Tried as array this time
-
如果我尝试将其作为 JSONArray 获取,当我尝试时,它会错误显示“....of type org.json.JSONObject 无法转换为 JSONArray”:
JSONObject obj = response.getJSONObject(0);
-
如果我尝试将其作为 JSONObject 获取,则错误显示“.... org.json.JSONArray 类型无法转换为 JSONObject”,并且 JSONObjectRequest 位于顶部
请帮忙!
根据 Dharmender 编辑代码:
RequestQueue requestQueue = Volley.newRequestQueue(trial1.this);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,response -> {
System.out.println(response.toString());
try {
JSONObject json = new JSONObject(response.toString());
JSONArray returnresult = json.getJSONArray("Returnresult");
for(int countItem = 0;countItem<returnresult.length();countItem++){
JSONObject returnObject = returnresult.getJSONObject(countItem);
String apiStatus=returnObject.isNull("api_status")?"":returnObject.optString("api_status");
System.out.println("Status is "+apiStatus);
}
} catch (JSONException e) {
e.printstacktrace();
}
解决方法
尝试使用以下代码。
RequestQueue requestQueue = Volley.newRequestQueue(trial1.this);
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,url,null,response -> {
System.out.println(response.toString());
try {
JSONObject json = new JSONObject(response.toString());
JSONArray returnresult = json.getJSONArray("Returnresult");
for(int countItem = 0;countItem<returnresult.length();countItem++){
JSONObject returnObject = returnresult.getJSONObject(countItem);
String apiStatus=returnObject.isNull("api_status")?"":returnObject.optString("api_status");
System.out.println("Status is "+apiStatus);
}
} catch (JSONException e) {
e.printStackTrace();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。