js list数据 转 树状 层级 JSON,递归生成树状 层级 JSON

<!DOCTYPE html>
<html>
<head>
<script>
var data=[
{"id":"aaa","parentId":"account","spType":0,"layerId":0,"seqId":1,"name":"阿萨德发多少","deleted":"0"},
{"id":"account","parentId":"","spType":0,"layerId":0,"seqId":50,"name":"账户","deleted":"0"},
{"id":"bbb","parentId":"account","spType":0,"layerId":0,"seqId":2,"name":"阿萨德发多少","deleted":"0"},
{"id":"ccc","parentId":"account","spType":0,"layerId":0,"seqId":3,"name":"a啊都是发","deleted":"0"},
{"id":"ddd","parentId":"dispatch","spType":0,"layerId":0,"seqId":1,"name":"大夫","deleted":"0"},
{"id":"dispatch","parentId":"","spType":0,"layerId":0,"seqId":2,"name":"通知公告","deleted":"0"},
{"id":"eee","parentId":"dispatch","spType":0,"layerId":0,"seqId":2,"name":";卡萨丁","deleted":"0"},
{"id":"fff","parentId":"gridding","spType":0,"layerId":0,"seqId":1,"name":"拉收到了","deleted":"0"},
{"id":"gridding","parentId":"","spType":0,"layerId":0,"seqId":1,"name":"网格化管理","deleted":"0"},
{"id":"portals","parentId":"","spType":0,"layerId":0,"seqId":3,"name":"综合信息门户管理","deleted":"0"}
];

   var getJsonTree=function(data,parentId){
    	var itemArr=[];
		for(var i=0;i<data.length;i++){	
			var node=data[i];
			//data.splice(i, 1)
			 if(node.parentId==parentId ){	
				var newNode={id:node.id,title:node.name,nodes:getJsonTree(data,node.id)};
				itemArr.push(newNode);				 
			 }
		}
		return itemArr;
    }
	
	console.log(getJsonTree(data,''));
	
	
</script>
</head>

<body>


</body>
</html>

  

转载于:https://www.cnblogs.com/pangguoming/p/7373991.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们有以下的JSON 数据: ```json { "id": 1, "name": "A", "children": [ { "id": 2, "name": "B", "children": [ { "id": 3, "name": "C", "children": [] }, { "id": 4, "name": "D", "children": [] } ] }, { "id": 5, "name": "E", "children": [ { "id": 6, "name": "F", "children": [] } ] } ] } ``` 现在我们想要将它换为平级数据,即: ``` 1-A 2-B 3-C 4-D 5-E 6-F ``` 我们可以使用递归的方式来实现这个功能,具体的步骤如下: 1. 定义一个 `TreeNode` 类来表示形节点。 ```java public class TreeNode { private int id; private String name; private List<TreeNode> children; public TreeNode(int id, String name, List<TreeNode> children) { this.id = id; this.name = name; this.children = children; } // getters and setters } ``` 2. 编写递归函数 `flatten`,用于将形结构换为平级结构。 ```java public static List<String> flatten(TreeNode node) { List<String> result = new ArrayList<>(); result.add(node.getId() + "-" + node.getName()); for (TreeNode child : node.getChildren()) { result.addAll(flatten(child)); } return result; } ``` 3. 在主函数中调用 `flatten` 函数,并将结果输出。 ```java public static void main(String[] args) { String json = "{\"id\":1,\"name\":\"A\",\"children\":[{\"id\":2,\"name\":\"B\",\"children\":[{\"id\":3,\"name\":\"C\",\"children\":[]},{\"id\":4,\"name\":\"D\",\"children\":[]}]},{\"id\":5,\"name\":\"E\",\"children\":[{\"id\":6,\"name\":\"F\",\"children\":[]}]}]}"; Gson gson = new Gson(); TreeNode root = gson.fromJson(json, TreeNode.class); List<String> result = flatten(root); for (String s : result) { System.out.println(s); } } ``` 运行程序后,输出以下结果: ``` 1-A 2-B 3-C 4-D 5-E 6-F ``` 这样我们就成功地将JSON 数据换为平级数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值