将数据表中的数据(有父节点和子节点每行数据都通过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;
}