您的位置:

java实现菜单递归json(java递归实现多级菜单栏)

java实现菜单递归json(java递归实现多级菜单栏)

更新:

本文目录一览:

如何用java递归生成带children的json串啊?数据集已经有了在下面。

不清楚你的业务需求。

1、数据存放在xml文件中,读取xml文件

2、json格式,如果你的数据有规律可循,可以用代码循环遍历

3、如果数据来自数据库,那么使用sql,一般的数据库都提供查询“树”的sql

java根据数据库生成菜单(递归)

不需要递归用一个特殊字符的算法来处理

比如

基本信息 1000

酒店管理 10001000

服务商管理 10002000

产品信息 2000

导游管理 20001000

物品管理 20002000

java如何给有层级关系的JSON字符串做递归处理

先递归出一个 node对象,再将node对象转换成json串。直接进行字符串的json操作不建议。

class Node{

private String id;

private String parentId;

private ListNode children;

public void addChildren(Node child){

getChildren().add(child);

}

public ListNode getChildren();

public String transformTojson(Node node ,StringBuffer jsonStr){

//递归

if(jsonStr ==null){

StringBuffer jsonStr=new ();

}

if(node.id!=null){

//拼接父节点json串

jsonStr.append(id:node.id,children:#children);

}

List childNodeList = node.getChildren();

StringBuffer childrenSB = new();

for( Node node :childNodeList){

childrenSB=transformTojson(node);

}

sonStr.replaceFirst("#children",childrenSB);

return jsonStr;

}

}

伪代码大概这样。

transformTojson方法可以不自己写,直接使用第三方工具jar包的json转化方法,比如gjson。

递归实现java无限极菜单

说下我个人的做法吧,不考虑任何效率问题,我是在查询对象的时候,把对象用递归方法先封装成一个集合。就是第一次查的时候,会拿到根,然后就可以开始使用递归去把子类提出来,直到没有儿子。最后只需要把这个集合直接JSONArray 转成json字符串。丢到前台就行了。

如何用java递归生成带children的json串

这个问题有点没意义,因为java已经有相应的jar了,不论是阿里的fastjson,还是gson,又或者是jackson,都是已经很成熟的jar了。如果非要自己去写的话,就需要用到反射了。简单来说,就是获取对象的所有属性。复杂说的话,要判断对象的属性,判断属性类型,判断属性值是否为null,判断对象是否是有transient修饰,判断字符串里面是否有双引号等等。然后通过StringBuffer或是StringBuilder去拼接字符串,来生成json串,至于是StringBuffer还是StringBuilder就看你的需要再决定了