从数据库查询出来一个list<对象>该对象有id,name,parent_id有层级关系数据为:
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遍历组合数据】