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,List<pojo>data  这样的结构。下面使用的是通过遍历的方式组合:

List<Pojo>list=从数据库查询出来的list数据;

List<Pojo>f=new ArrayList<>();
        for(Pojo i:list) {
            List<Pojo> 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传到前端。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值