先看结果:
这是一个分类数据,可口可乐是一级分类,美汁源是2级分类,美之源是350ml是三级分类,当然还是可以继续分的,
看下数据结构
id;分类自身的id
parentId:该分类的付节点Id
我们来看pojo;
有注释大家可以自己看
这是数据库表数据,如何查处想图1一样的json树形结构呢;
重点来了
上源码
public List findAllCategory(Long shopId) {
List treeList = new ArrayList<>();
List listGoodsCategory=goodsCategoryDao.listAllCategory(shopId); //查处所有的数据
for (GoodsCategory parent : listGoodsCategory) { //遍历
if (parent.getParentId().equals(0L)) { //找到parentId为零的节点,即一级目录,
treeList.add(findChildren(parent, listGoodsCategory));
}
}
return treeList;
}
//寻找子节点
private static GoodsCategory findChildren(GoodsCategory parent, List<GoodsCategory> listGoodsCategory) {
for (GoodsCategory all : listGoodsCategory) {
if (parent.getId().equals(all.getParentId())) {
if (parent.getChildren() == null) {
parent.setChildren(new ArrayList<GoodsCategory>());
}
parent.getChildren().add(findChildren(all, listGoodsCategory));
}
}
return parent;
}