本文目录一览:
- 1、如何用java递归生成带children的json串啊?数据集已经有了在下面。
- 2、java根据数据库生成菜单(递归)
- 3、java如何给有层级关系的JSON字符串做递归处理
- 4、递归实现java无限极菜单
- 5、如何用java递归生成带children的json串
如何用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就看你的需要再决定了