自己写了一个方法,利用递归的方式,将list结构转为树形结构数据,可通用于任何格式的数据。
// 0 代表一级类目
private List<Map<String, Object>> buildTree(List<Map<String, Object>> mapList, String value) {
int size = 0;
for (Map<String, Object> map : mapList) {
if (!"0".equals(value) && value.equals(map.get("parentUuid").toString())) {
size++;
}
}
if (!"0".equals(value) && size == 0) {
return new ArrayList<>();
}
List<Map<String, Object>> list = new ArrayList<>();
for (Map<String, Object> map : mapList) {
if (value.equals(map.get("parentUuid").toString())) {
Map<String, Object> children = new HashMap<>();
children.put("uuid", map.get("uuid"));
children.put("name", map.get("name"));
List<Map<String, Object>> listNode = new ArrayList<>();
if (value.equals(map.get("parentUuid").toString())) {
listNode = buildTree(mapList, String.valueOf(map.get("uuid")));
}
children.put("children", listNode);
list.add(children);
}
}
return list;
}