java递归多级数组遍历,用递归方式实现带层级表数据的无线级联树形显示,并转换成JsonArray返回前端...

private int iLength=0;

/**

* 用递归方式实现无限级联

* @return

*

* |第一层

* |—第二层

* |—|—第三层

*/

public JSONArray getAll() {

LinkedHashMap mapDepart = new LinkedHashMap();

LinkedHashMap departList = getNode("0010aae53b864f7ca440811a37716cc6",mapDepart);

//将linkedHashMap转化为json对象

JSONArray jsonArray = new JSONArray();

for (String key : departList.keySet()) {

JSONObject json = new JSONObject();

json.put("ids", key);

json.put("departName", departList.get(key));

jsonArray.add(json);

}

//返回jsonarray

return jsonArray;

}

//按照层数生成"|—"

private String genHeng(int iLength){

String sHeng = "";

for (int i = 0; i < iLength; i++) {

sHeng+="|—";

}

return sHeng;

}

//利用递归生成无限级联的树形结构

private LinkedHashMap getNode(String parentIds,LinkedHashMap mapDepart){

Depart depart = Depart.dao.findById(parentIds);

mapDepart.put(depart.getIds(), genHeng(iLength)+depart.getDepartName());

List listDepart = Db.find("Select * from depart where pDepartIds=?",parentIds);

//有父节点为parentIds的子节点

for (Record record : listDepart) {

iLength++;

mapDepart.put(record.getStr(Depart.column_ids), genHeng(iLength)+record.getStr(Depart.column_departName));

getNode(record.getStr(Depart.column_ids), mapDepart);

iLength--;

}

return mapDepart;

}

数据表depart结构是 ids,departName,pDepartIds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值