Я вызываю API, используя залп в виде JSON. Это JSON имеет JSON объекты в массиве JSON. Сначала я написал код, вызывающий JSONArrayRequest, затем запускаю al oop, чтобы найти все объекты внутри этого массива, после чего я получаю имя состояния через getString и сопоставляет его с именем состояния, которое нажимается, если оно совпадает с последующим выполнением l oop найти все «районные» названия и «активные» из районных данных. Я не могу получить вывод, но в тосте ErrorResponse я получаю полный массив со всеми его данными API.
если я меняю "JSONObject array = object1.getJSONObject (" districtData ");" в "JSONArray array = object1.getJSONArray (" districtData ");"Я получаю скриншот ошибки, прикрепленный ниже ...
, если не изменяю это " JSONObject array = object1.getJSONObject ("districtData"); " тогда я не знаю, что написать здесь "JSONObject object2 = array.getJSONObject (/ Что делать после этого, что вводить здесь, пожалуйста, скажите мне ... Я новичок в этом /);" потому что все, что я Я пишу там, чтобы я понял, что не понимаю, что я ввожу.
Некоторая часть JSON
[{"state": "Андаман и Никобар Острова "," код штата ":" AN "," districtData ": [{" район ":" Северная и Средняя Андаманская область "," примечания ":" "," активный ": 0," подтвержден ": 1," умерший " : 0, "выздоровел": 1, "дельта": {"подтвержден": 0, "умер": 0, "выздоровел": 0}}, {"район": "Южный Андаман", "примечания": "" , «активный»: 10, «подтвержденный»: 20, «decea» sed ": 0," исправлено ": 10," delta ": {" подтверждено ": 4," умершее ": 0," восстановлено ": 0}}, {" district ":" Неизвестно "," notes ":" "," активный ": 1," подтвержден ": 1," умер ": 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));
}
}
Ошибка ScreenShot