JAVA将父子节点封装成children数组形式/树形

**

## 先看一下效果:

** 
[
  {
    "children": [
      {
        "label": "心绞痛",
        "value": 31
      },
      {
        "label": "急性心梗",
        "value": 32
      }
    ],
    "label": "心血管系统疾病",
    "value": 3
  },
  {
    "label": "血液系统疾病",
    "value": 4
  },
  {
    "label": "内分泌及代谢疾病",
    "value": 5
  },
  {
    "label": "泌尿系统疾病",
    "value": 6
  },
  {
    "children": [
      {
        "label": "脑血管意外",
        "value": 35
      }
    ],
    "label": "神经系统疾病",
    "value": 7
  },
  {
    "label": "普通外科疾病",
    "value": 8
  },
  {
    "children": [
      {
        "children": [
          {
            "label": "支气管炎",
            "value": 29
          },
          {
            "label": "肺炎",
            "value": 30
          }
        ],
        "label": "呼吸系统疾病",
        "value": 1
      },
      {
        "label": "下肢外伤",
        "value": 36
      },
      {
        "label": "交通伤",
        "value": 41
      }
    ],
    "label": "创伤",
    "value": 9
  },
  {
    "children": [
      {
        "label": "皮肤病",
        "value": 40
      }
    ],
    "label": "烧伤",
    "value": 10
  },
  {
    "label": "车祸",
    "value": 11
  },
  {
    "children": [
      {
        "label": "胃癌",
        "value": 37
      }
    ],
    "label": "恶性肿瘤",
    "value": 12
  }
]

java代码:

 public ResponseData queryDiseasesType(){
        List<Map<String,Object>> list = measureDetailDao.queryDiseasesType();
        List<Object> list2 = new ArrayList<Object>();
        for (Map<String,Object> x: list) {
            Map<String,Object> mapArr = new HashMap<String, Object>();
            if(null == x.get("parent_id") || "".equals(x.get("parent_id"))){
                mapArr.put("value", x.get("id"));
                mapArr.put("label", x.get("display_name"));
                List<?> id1 = menuChild(list, x.get("id").toString());
                if(null !=id1 && id1.size()>0){
                    mapArr.put("children", id1);
                }
                list2.add(mapArr);
            }
        }
        System.out.println(JSONObject.toJSONString(list2));
        return  ResponseData.success(list2);
    }

    public List<?> menuChild(List<Map<String,Object>> list,String id){
        List<Object> lists = new ArrayList<Object>();
        for(Map<String,Object> a :list){
            Map<String,Object> childArray = new HashMap<String, Object>();
            if(null != a.get("parent_id") && String.valueOf(a.get("parent_id")).equals( id)){
                childArray.put("value",a.get("id"));
                childArray.put("label", a.get("display_name"));
                List<?> id1 = menuChild(list, a.get("id").toString());
                if(null !=id1 && id1.size()>0){
                    childArray.put("children",id1);
                }

                lists.add(childArray);
            }
        }
        return lists;
    }
																											by dk  2022/03/09
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值