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传到前端。

 

你可能感兴趣的:(个人分享)