Объединение вложенных json для цикла - PullRequest
0 голосов
/ 07 августа 2020

У меня есть два forl oop, в которых данные добавляются в разные ArrayList. Теперь мой вопрос: как нам совместить этих двух Arraylist? Ниже приведен код, который я пробовал, но не работал. Пожалуйста, дайте мне решение для того же. TIA

try {
        JSONObject object = new JSONObject(response);
        status = object.getString("status");
        if (status.equals("200")) {
            rest.dismissProgressdialog();
            JSONArray jsonArray = object.getJSONArray("data");

            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                New_Service_Model_1 new_service_model = new New_Service_Model_1();
                new_service_model.setMain_name(jsonObject.getString("main_name"));
                new_service_model.setSmid(jsonObject.optInt("smid"));

                JSONArray jsonArray1 = jsonObject.getJSONArray("sub_service");

                //sub_services_list.clear();
                sub_services_list = new ArrayList<>();
                for (int j = 0; j < jsonArray1.length(); j++) {
                    JSONObject jsonObject1 = jsonArray1.getJSONObject(j);
                    New_Sub_Service_Model_1 sub_service_model = new New_Sub_Service_Model_1();
                    sub_service_model.setSmid(jsonObject1.optString("smid"));
                    sub_service_model.setSbid(jsonObject1.optInt("sbid"));
                    sub_service_model.setSub_name(jsonObject1.optString("sub_name"));
                    sub_service_model.setDesc(jsonObject1.optInt("desc"));
                    sub_service_model.setSt_cust(jsonObject1.optInt("st_cust"));
                    sub_service_model.setSt_pro(jsonObject1.optInt("st_pro"));
                    sub_service_model.setExist_cust(jsonObject1.optInt("exist_cust"));
                    sub_service_model.setExist_prov(jsonObject1.optInt("exist_prov"));
                    sub_services_list.add(sub_service_model);

                }
                new_service_model.setSub_service_list(sub_services_list);
                services_list.add(new_service_model);
                service_list_adapter = new Service_List_Adapter_1(this, services_list, service_costMain_interface);
                rclyrview_services.setAdapter(service_list_adapter);
                service_list_adapter.notifyDataSetChanged();
            }
        } else {
            rest.dismissProgressdialog();
            Toast.makeText(Service_Manage.this, "No Data found", Toast.LENGTH_SHORT).show();
        }

1 Ответ

1 голос
/ 07 августа 2020

Вместо ручного анализа ответа json. Вставьте json сюда http://www.jsonschema2pojo.org/ и используйте GSON или Jackson, в зависимости от того, что удобно для анализа ответа. Доступно множество учебных пособий, которые могут дать вам краткий обзор того, как это можно сделать. Стоит попробовать, если в вашем приложении много мест, где вы хотите выполнить парсинг Json.

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