首页 > 其他 > 详细

封装父子级关系

时间:2021-04-08 18:49:33      阅读:19      评论:0      收藏:0      [点我收藏+]
    public static JSONArray createTreeJson(List<?> list) throws Exception {
        JSONArray rootArray = new JSONArray();
        for (int i = 0; i < list.size(); i++) {
            Class resource = list.get(i).getClass();
            Object objectResource = list.get(i);
            // 接触私有化限制
            resource.getDeclaredField("parentId").setAccessible(true);
            resource.getDeclaredField("id").setAccessible(true);
            String ParentIdField = resource.getDeclaredField("parentId").get(objectResource).toString();
            if (ParentIdField.equals("0")) {
                //创建子节点分支
                JSONObject rootObj = createBranch(list, objectResource);
                rootArray.add(rootObj);
            }
        }
        return rootArray;
    }

    public static <T> JSONObject createBranch(List<?> list, Object currentNode) throws Exception {
        JSONObject currentObj = (JSONObject) JSONObject.toJSON(currentNode);
        JSONArray childArray = new JSONArray();
        for (int i = 0; i < list.size(); i++) {
            Class newNode = list.get(i).getClass();
            Class currentNodeClass = currentNode.getClass();
            // 解除私有化限制
            String ParentIdField = newNode.getDeclaredField("parentId").get(list.get(i)).toString();
            String idField = currentNodeClass.getDeclaredField("id").get(currentNode).toString();
            if (ParentIdField != null && ParentIdField.compareTo(idField) == 0) {
                JSONObject childObj = createBranch(list, list.get(i));
                childArray.add(childObj);
            }
        }
        if (!childArray.isEmpty()) {
            currentObj.put("children", childArray);
        }
        return currentObj;
    }

 

封装父子级关系

原文:https://www.cnblogs.com/huqi96/p/14633277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!