構建菜單樹

一直以來沒工夫仔細琢磨菜單樹怎麼做,只知道遞歸,現在纔有空閒實現一次。

數據結構:

調用部分的代碼,瀏覽器地址爲:http://127.0.0.1:8080/admin/resource/menu?userId=23123

buildTree的代碼:

	public JSONArray buildTree(List<Resource> resListAll, List<Resource> iteratedList, int parentId) {
		JSONArray arr = new JSONArray();

		for (Resource resource : resListAll) {
			if (iteratedList.contains(resource)) {
				continue;
			}

			if (resource.getParentId() == parentId) {
				iteratedList.add(resource);
				String text = JSONObject.toJSONString(resource);
				JSONObject res = JSONObject.parseObject(text);
				arr.add(res);
				res.put("children", buildTree(resListAll, iteratedList, resource.getId()));
			}
		}
		return arr;
	}

  

結果:

{
	"resourceTree": [{
		"resourceRemark": "",
		"resourceContent": "",
		"orderNum": 0,
		"resourceDescription": "",
		"resourceName": "採購管理",
		"parentId": 0,
		"resourceStatus": "disabled",
		"depth": 0,
		"resourceUrl": "",
		"createTime": 1544149306000,
		"children": [{
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "非日常採購",
			"parentId": 5,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 23,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "日常採購管理",
			"parentId": 5,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 22,
			"resourceType": "menu"
		}],
		"id": 5,
		"resourceType": "menu"
	}, {
		"resourceRemark": "",
		"resourceContent": "",
		"orderNum": 0,
		"resourceDescription": "",
		"resourceName": "場地管理",
		"parentId": 0,
		"resourceStatus": "disabled",
		"depth": 0,
		"resourceUrl": "",
		"createTime": 1544148935000,
		"children": [{
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "合作酒店場地管理",
			"parentId": 4,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 21,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "會議室場地管理",
			"parentId": 4,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 20,
			"resourceType": "menu"
		}],
		"id": 4,
		"resourceType": "menu"
	}, {
		"resourceRemark": "",
		"resourceContent": "",
		"orderNum": 0,
		"resourceDescription": "",
		"resourceName": "支出管理",
		"parentId": 0,
		"resourceStatus": "disabled",
		"depth": 0,
		"resourceUrl": "",
		"createTime": 1544148987000,
		"children": [{
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "投標支出管理",
			"parentId": 3,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [{
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "星際投標",
				"parentId": 19,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [{
					"resourceRemark": "",
					"resourceContent": "",
					"orderNum": 0,
					"resourceDescription": "",
					"resourceName": "仙女星雲投標",
					"parentId": 30,
					"resourceStatus": "disabled",
					"depth": 0,
					"resourceUrl": "",
					"createTime": 1544443215000,
					"children": [],
					"id": 33,
					"resourceType": "menu"
				}, {
					"resourceRemark": "",
					"resourceContent": "",
					"orderNum": 0,
					"resourceDescription": "",
					"resourceName": "銀河系投標",
					"parentId": 30,
					"resourceStatus": "disabled",
					"depth": 0,
					"resourceUrl": "",
					"createTime": 1544443211000,
					"children": [],
					"id": 32,
					"resourceType": "menu"
				}],
				"id": 30,
				"resourceType": "menu"
			}, {
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "國際投標",
				"parentId": 19,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 29,
				"resourceType": "menu"
			}, {
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "國內投標",
				"parentId": 19,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 28,
				"resourceType": "menu"
			}, {
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "省內投標",
				"parentId": 19,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 27,
				"resourceType": "menu"
			}, {
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "市內投標",
				"parentId": 19,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 26,
				"resourceType": "menu"
			}],
			"id": 19,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "日常支出管理",
			"parentId": 3,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 18,
			"resourceType": "menu"
		}],
		"id": 3,
		"resourceType": "menu"
	}, {
		"resourceRemark": "",
		"resourceContent": "",
		"orderNum": 0,
		"resourceDescription": "",
		"resourceName": "考勤管理",
		"parentId": 0,
		"resourceStatus": "disabled",
		"depth": 0,
		"resourceUrl": "",
		"createTime": 1544148905000,
		"children": [{
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "會議考勤管理",
			"parentId": 2,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 17,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "日常考勤管理",
			"parentId": 2,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 16,
			"resourceType": "menu"
		}],
		"id": 2,
		"resourceType": "menu"
	}, {
		"resourceRemark": "",
		"resourceContent": "",
		"orderNum": 0,
		"resourceDescription": "",
		"resourceName": "系統管理",
		"parentId": 0,
		"resourceStatus": "disabled",
		"depth": 0,
		"resourceUrl": "",
		"createTime": 1544148843000,
		"children": [{
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "簽到管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [{
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "離場簽到",
				"parentId": 15,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 25,
				"resourceType": "menu"
			}, {
				"resourceRemark": "",
				"resourceContent": "",
				"orderNum": 0,
				"resourceDescription": "",
				"resourceName": "進場簽到",
				"parentId": 15,
				"resourceStatus": "disabled",
				"depth": 0,
				"resourceUrl": "",
				"createTime": 1544444261000,
				"children": [],
				"id": 24,
				"resourceType": "menu"
			}],
			"id": 15,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "頁面管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 14,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "菜單管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 13,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "權限管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 12,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "",
			"orderNum": 0,
			"resourceDescription": "",
			"resourceName": "角色管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 11,
			"resourceType": "menu"
		}, {
			"resourceRemark": "",
			"resourceContent": "/",
			"orderNum": 0,
			"resourceDescription": "首頁頁面",
			"resourceName": "用戶管理",
			"parentId": 1,
			"resourceStatus": "disabled",
			"depth": 0,
			"resourceUrl": "",
			"createTime": 1544444261000,
			"children": [],
			"id": 10,
			"resourceType": "menu"
		}],
		"id": 1,
		"resourceType": "menu"
	}]
}

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章