public class TestApiAction extends ApiBaseAction {
private static final long serialVersionUID = 1L;
private List<TestEntity> testList ;
public String getTreeJson() {
//1.查询所有数据,放入testList
Map<String,Object> map = new HashMap<>();
//这里map是存放查询的条件
testList = Factory.getTestRemote().findListByCon(map);
//2.new一个新的treeMenus
List<TestEntity> treeMenus = new ArrayList<TestEntity>();
//3.获取根节点数据
Map<String,Object> map1 = new HashMap<>();
map1.put("depth",1);
List<TestEntity> rootNodeList = Factory.getTestRemote().findListByCon(map1);
for (TestEntity testNode : rootNodeList) {
//4.调取buildChilTree方法(递归,建立子树形结构)
testNode = buildChilTree(testNode);
treeMenus.add(testNode);
}
return this.writeJsonSuccess("data", treeMenus);
}
/**
* 递归,建立子树形结构
*/
public TestEntity buildChilTree(TestEntity pNode) {
List<TestEntity> chilMenus = new ArrayList<TestEntity>();
for (TestEntity menuNode : testList) {
if(StringUtils.isNotBlank(menuNode.getParentId())){
if (menuNode.getParentId().equals(pNode.getId())) {
chilMenus.add(buildChilTree(menuNode));
}
}
}
pNode.setChildren(chilMenus);
return pNode;
}
}
利用递归拼接json格式的树结构数据
最新推荐文章于 2024-04-24 22:52:03 发布