android - 在 Json 数组中调用 Json 对象但没有得到输出
问题描述
我正在使用 JSON 形式的 volley 调用 API。该 JSON 在 JSON 数组中具有 JSON 对象。我首先编写了一个调用 JSONArrayRequest 的代码,然后我运行一个循环以查找该数组中的所有对象,之后我通过 getString 获取状态名称并将其与按下的状态名称相匹配,如果它相同,则运行下一个循环以查找所有“区”名称和“活动”来自区数据。我无法获得输出,但在 ErrorResponse toast 中,我得到了包含所有 API 数据的完整数组。
如果我要更改“JSONObject 数组 = object1.getJSONObject("districtData");” 到"JSONArray array = object1.getJSONArray("districtData"); "我收到错误截图附在下面...
如果不更改此“JSONObject array = object1.getJSONObject("districtData");” 然后我不知道在这里写什么“JSONObject object2 = array.getJSONObject(/之后要做什么,在这里输入什么请告诉我......我是新手/);” 因为无论我在那里写什么,我都没有得到我所输入的东西的价值。
JSON的一部分
[ {“州”:“安达曼和尼科巴群岛”,“州代码”:“AN”,“districtData”:[ {“区”:“安达曼北部和中部”,“笔记”:“”,“活动”:0 ,“确认”:1,“死亡”:0,“恢复”:1,“三角洲”:{“确认”:0,“死亡”:0,“恢复”:0 } },{“区”:“南安达曼”,“笔记”:“”,“活跃”:10,“确认”:20,“已故”:0,“恢复”:10,“三角洲”:{“确认”:4,“已故”:0,“恢复”:0 } },{“区”:“未知”,“笔记”:“”,“活动”:1,“确认”:1,“已故”:0,“恢复“:0,“三角洲”:{“确认”:0,“已故”:0,“恢复”:0}}]}]0,“已故”:0,“恢复”:0 } } ] } ]0,“已故”:0,“恢复”:0 } } ] } ]
private void getData2(){
final ProgressDialog progressDialog = new ProgressDialog(this);
final String clickedState = getIntent().getStringExtra("stateName");
progressDialog.setMessage("Loading...");
progressDialog.show();
String url = "https://api.covid19india.org/v2/state_district_wise.json";
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONObject object = new JSONObject(response);
assert clickedState != null;
JSONObject object1 = object.getJSONObject(clickedState);
JSONObject array = object1.getJSONObject("districtData");
for (int i = 0; i<array.length();i++){
JSONObject object2 = array.getJSONObject(/*What To do after that, what to enter here pls tel me... I m new to this*/);
String s1 = object2.getString("district");
String s2 = object2.getString("active");
StateList item = new StateList(s1,s2);
mData2.add(item);
initRecyclerView();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show();
}
});
Volley.newRequestQueue(this).add(request);
}
private void initRecyclerView(){
Log.d(TAG, "initRecyclerView: initRecyclerView");
RecyclerView recyclerView = findViewById(R.id.districtsDetailedRecycler);
StateDistrictsAdapter adapter2 = new StateDistrictsAdapter(mData2,this);
recyclerView.setAdapter(adapter2);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
}
解决方案
推荐阅读
- javascript - 表单数据追加方法在 Angular 8 中不起作用
- c# - 如何在 C# 中返回一个几乎没有修改的新对象?
- python - 如何使用嵌套生成器表达式将熊猫数据框列表导出到 Excel?
- c# - 我正在尝试在 asp.net mvc 中构建一个多用户网站,但是每当我从不同的计算机登录时,我的用户就会混淆?
- php - 如何获取 nextcloud 文件的完整路径
- node.js - 使用回调和承诺对 mongodb 查询的不同响应
- vim - 如何防止在操作后退出自动视觉模式?
- java - eclipse 如何查看具有大量数据的变量(HashMap)?
- javascript - 如何从 asp.net 站点使用用户身份验证器调用 c# 方法
- excel - 如何使用 Excel-VBA 从网络弹出日历中获取日期?