Layui 组装前端框架Layui的Tree菜单数据的json格式

// 用来放json
			List<JSONObject> l = new ArrayList<>();
			// 得到数据库中的数据
			List<TreeNode> menuTreeList = md.menuTreeList(req.getParameterMap(), null);
			for (TreeNode treeNode : menuTreeList) {
				// 创建json对象,用来得到想要的json格式
				JSONObject obj = new JSONObject();
				// 这是树形菜单要的json格式(树形菜单读取的数据是json格式)
				obj.put("name", treeNode.getname());
				obj.put("asdasd", treeNode.getname());
				obj.put("id", treeNode.getId());
				// obj.put("children", treeNode.getChildren());
				// 用来存放相应的父菜单下的子菜单
				List<JSONObject> r = new ArrayList<>();
				// 遍历相应的子菜单集合
				for (TreeNode rr : treeNode.getChildren()) {
					// 这是树形菜单需要的子菜单的格式(属性chirdren的设置)
					JSONObject o = new JSONObject();
					o.put("id", rr.getId());
					o.put("name", rr.getname());
					o.put("children", rr.getAttributes());
					o.put("href", rr.getAttributes().get("href"));
					// obj.put("pid", rr.getPid());
					// 下一层子菜单
					List<JSONObject> s1 = new ArrayList<>();
					for (TreeNode s2 : rr.getChildren()) {//如果有多层的话继续使用循环嵌套
						JSONObject o1 = new JSONObject();
						o1.put("id", s2.getId());
						o1.put("name", s2.getname());
						o1.put("children", s2.getAttributes());
						o1.put("href", s2.getAttributes().get("href"));
						// System.out.println(s2.getname());
						s1.add(o1);
					} // 将子菜单的集合放到chirden属性里面
					o.put("children", s1);
					r.add(o);
					// 将子菜单的集合放到chirden属性里面
					obj.put("children", r);
					// System.out.println(obj);
				}
				l.add(obj);
			}
			
			String outstr = JSON.toJSONString(l);
			super.print(outstr, resp);//将json字符输出到前台的方法

上面的是按照结构顺序一层一层的拼上去,下面这个是递归实现

public List<JSONObject> jsonObjects(List<TreeNode> resp) {
		JSONObject jsonObject = new JSONObject();
		List<JSONObject> l1 = new ArrayList<>();
		for (TreeNode treeNode : resp) {
			jsonObject = new JSONObject();
			jsonObject.put("id", treeNode.getId());
			jsonObject.put("name", treeNode.getname());
			jsonObject.put("href", treeNode.getAttributes().get("href"));
			if (treeNode.getChildren() != null && treeNode.getChildren().size() > 0) {
				List<JSONObject> lss = jsonObjects(treeNode.getChildren());
				jsonObject.put("children", lss);
			}
			l1.add(jsonObject);
		}
		return l1;
	}

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值