ElementUI的tree转换为Map结构

/ 编程记录 / 没有评论 / 393浏览

Element的树结构,转换为java的map结构,同时父子结构相同

    public static void main(String[] args) {
        String jsonStr = FileUtil.readUtf8String("C:\\Users\\Administrator\\Desktop\\json.txt");
        JSONObject jo = (JSONObject) JSON.parseArray(jsonStr).get(0);
        JSONArray children = jo.getJSONArray("children");
        Map<String, Object> map = new HashMap<>();
        List<JSONObject> collect = children.stream().map(a->(JSONObject)a).collect(Collectors.toList());
        for (JSONObject jsonObject : collect) {
            sub(map,jsonObject);
        }
        System.out.println(JSON.toJSONString(map,true));
    }

    private static void sub(Map map,JSONObject child){
            String type = child.getString("type");//node / param
            String key;
            if (type.equals("node")) {
                key = child.getString("label");
                Map<String, Object> tMap = new HashMap<>();
                map.put(key,tMap);
                List<JSONObject> collect  = child.getJSONArray("children").stream().map(a->(JSONObject)a).collect(Collectors.toList());
                for (JSONObject jsonObject : collect) {
                    sub(tMap, jsonObject);
                }
            }else{
                JSONObject endPoint = child.getJSONObject("endPoint");
                key = endPoint.getString("name");
                Object value = endPoint.get("defaultValue");
                map.put(key,value);
            }
    }