将数据表中的数据(有父节点和子节点每行数据都通过ID和PID关联的树形结构)以json格式打印到控制台格式如图:

将数据表中的数据(有父节点和子节点每行数据都通过ID和PID关联的树形结构)以json格式打印到控制台格式如图:将数据表中的数据(有父节点和子节点每行数据都通过ID和PID关联的树形结构)以json格式打印到控制台格式如图:将数据表中的数据(有父节点和子节点每行数据都通过ID和PID关联的树形结构)以json格式打印到控制台格式如图:

 

 

核心代码:

@Test
    public void toJsonTest(){
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlsessionFactory().openSession();
        //获取接口的代理实现类
        JsonMapper iptvMapper = sqlSession.getMapper(JsonMapper.class);
        
        BigInteger i = new BigInteger("-1");
        Tree tr = new Tree();
        Tree tr1 = new Tree();
        //查询出根结点数据
        tr = iptvMapper.getFirstByPID(i);
        //通过根结点获取子结点
        tr1 = toJson(iptvMapper, tr);
        
        GsonBuilder builder = new GsonBuilder();
        builder.setPrettyPrinting();
        Gson gson = builder.create();
        System.out.println(gson.toJson(tr1));
        sqlSession.close();
    }
    public Tree toJson(JsonMapper iptvMapper, Tree tr) {
        List<Tree> list = iptvMapper.getInfoByPID(tr.getID());
        for (Tree tree : list) {
            tr.getChildren().add(tree);
            toJson(iptvMapper, tree);
        }
        return tr;
    }