list遍历组合数据

从数据库查询出来一个list<对象>该对象有id,name,parent_id有层级关系数据为:

DB
id(bigint) name(varchar) parent_id(bigint)
1 电器 null
2 家具 null
3 服装 null
4 手机 1
5 沙发 2
6 空调 2
7 风衣 3

现在需要将数据结构组装成为以下的json结构 展现的方式为:
[
{"id":1,"name":"电器","parent_id",data:[{"id":4,"手机","parent_id":1}]},
{"id":2,"name":"家具","parent_id",data:[{"id":5,"沙发","parent_id":2},{"id":6,"空调","parent_id":2}]},
{"id":3,"name":"服装","parent_id",data:{"id":7,"风衣","parent_id":7}},
]
pojo对象的属性就应该是 id,name,parent_id,Listdata这样的结构。下面使用的是通过遍历的方式组合:
Listlist=从数据库查询出来的list数据;
Listf=new ArrayList<>();
for(Pojo i:list) {
List s=new ArrayList<>();
Pojo p=new Pojo();
p.setId(i.getId());
p.setName(i.getName());
for(Pojo j:list) {
if(j.getParent_id()!=null) {
if(i.getId().longValue()==j.getParent_id().longValue()) {
s.add(j);
p.setData(s);
}
}
}
if(p.getDatat()!=null&&p.getData().size()!=0) {
f.add(p);
}
}
最后使用json工具把f转换为json传到前端。
【list遍历组合数据】

    推荐阅读