java解析前端传的树菜单

java解析前端传的树菜单


前端传的json

[
    {
        "title": "一级1",
        "id": 1,
        "children": [
            {
                "title": "二级",
                "id": 3,
                "children": [
                    {
                        "title": "三级1-1-3",
                        "id": 23
                    },
                    {
                        "title": "三级1-1-1",
                        "id": 7
                    },
                    {
                        "title": "三级1-1-2",
                        "id": 8
                    }
                ]
            }
        ]
    }
]

后台json转换实体类


	private String id;

    private String title;

    // 子菜单
    private List<VoTree> children;
    

后台方法

	 
	 List<VoTree> voTree = new Gson().fromJson(json, new TypeToken<List<VoTree>>() {
        }.getType());

	 List<String> list = new ArrayList<String>();
	 //调用getTree 得到勾选的id集合
     getTree(voTree,list);
     //把集合转成,号拼接的字符串
     String ids = StringUtils.join(list, ",");
     //调用数据库修改即可 
     

getTree方法


	private void getTree(List<VoTree> voTrees,List<String> ids) {
	      List<String> list = voTrees.stream().map(VoTree::getId).collect(Collectors.toList());
	      ids.addAll(list);
	      Iterator<VoTree> iterator = voTrees.iterator();
	      while (iterator.hasNext()) {
	          VoTree voTree = iterator.next();
	          if (voTree.getChildren().size() > 0) {
	              getTree(voTree.getChildren(), ids);
	          }
	      }
	}
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值