结合嵌套的json for循环

Posted

技术标签:

【中文标题】结合嵌套的json for循环【英文标题】:Combining nested json for loop 【发布时间】:2020-11-27 11:16:28 【问题描述】:

我有两个forloop,其中数据被添加到不同的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();
        

【问题讨论】:

结合这两个数组列表到底是什么意思?正如我所见,sub_services_listservices_list 内。 我需要将所有数据集中到一个 ArrayList services_list 当我运行上面的代码时,services_list 总是为空 您能分享您的原始 JSON 响应吗? 【参考方案1】:

而不是手动解析 json 响应。 将您的 json 粘贴到此处 http://www.jsonschema2pojo.org/ 并使用 GSON 或 Jackson 以方便解析响应。 有许多可用的教程可以让您快速了解如何完成工作。如果您的应用有很多地方需要 Json 解析,那么值得一试。

【讨论】:

以上是关于结合嵌套的json for循环的主要内容,如果未能解决你的问题,请参考以下文章

Java for循环嵌套for循环,你需要懂的代码性能优化技巧

嵌套 JSON 对象中的数组使用 for-in 来循环访问每个数组

1.10 print triger(for循环嵌套 && print 输出格式)

怎样用for循环动态遍历json数组

如何使用vue js循环嵌套的json响应

小程序 wx:for 循环嵌套