Вызов Json объекта внутри массива Json, но без получения вывода - PullRequest
0 голосов
/ 23 апреля 2020

Я вызываю 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...