Tree树 递归查询,显示成JSON格式

首先想验证自己的数据是不是JSON格式可以去 www.json.com 这个json格式检测工具来检测!!!

本地测试数据:

这是我本地查出来的数据:

转换成json就是下面格式:

具体代码:

需要的json包

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>

/**
* 递归查询节点
*/
@RequestMapping(value="quertRecursionOrder",produces ="text/plain;charset=utf-8")
@ResponseBody
public JSONObject findTree(){
JSONObject jsonMap = new JSONObject();
try {
//查询所有菜单    SELECT <include refid="RecursionScheam_Table"/>  FROM recursion  ORDER BY orders ASC
List<RecursionScheam> allMenu = treeService.quertRecursionOrder();
//根节点
List<RecursionScheam> rootMenu = new ArrayList<>();
for (RecursionScheam nav : allMenu) {
//父节点都是0
if(nav.getParentId().equals("0")){
rootMenu.add(nav);
}
}
//为根菜单设置子菜单,getClild是递归调用的
for (RecursionScheam recursionScheam : rootMenu) {
// 获取根节点下的所有子节点 使用getChild方法
List<RecursionScheam> childList = getChild(recursionScheam.getId(),allMenu);
//给根节点设置子节点
recursionScheam.setChildMenus(childList);
}

jsonMap.put("list", rootMenu);
System.err.println(jsonMap.toString());
} catch (Exception e) {
// TODO: handle exception
}

return jsonMap;
}

/**
   * 获取子节点
   * @param id 父节点id
   * @param allMenu 所有菜单列表
   * @return 每个根节点下,所有子菜单列表
   */
public List<RecursionScheam> getChild(String id,List<RecursionScheam> allMenu){
//子菜单
List<RecursionScheam> childList = new ArrayList<RecursionScheam>();
for (RecursionScheam nav : allMenu) {
// 遍历所有节点,将所有菜单的父id与传过来的根节点的id比较
//相等说明:为该根节点的子节点。
if(nav.getParentId().equals(id)){
childList.add(nav);
}
}
//递归
for (RecursionScheam navs : childList) {
navs.setChildMenus(getChild(navs.getId(),allMenu));
}
//如果节点下没有子节点,返回一个空List(递归退出)
if(childList.size() == 0){
return new ArrayList<RecursionScheam>();
}
return childList;
}

原文地址:https://www.cnblogs.com/ysySelf/p/10308356.html

时间: 2024-10-20 16:04:01

Tree树 递归查询,显示成JSON格式的相关文章

android实现json数据的解析和把数据转换成json格式的字符串

利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般数据 package com.hck.test; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.

java将XML文档转换成json格式数据

功能 将xml文档转换成json格式数据 说明 依赖包: 1. jdom-2.0.2.jar : xml解析工具包; 2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 程序源码 package com.xxx.open.pay.util; import com.alibaba.fastjson.JSONObject; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdo

DtatTable转成Json格式

///<summary> /// DataTable转成Json ///</summary> ///<param name="dt"></param> ///<returns></returns> publicstaticstring DataTableToJson(DataTable dt) { StringBuilder jsonBuilder = newStringBuilder(); jsonBuilder

JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法

java代码对象如下: package com.evideostb.billsystem.module.model; import org.codehaus.jackson.map.annotate.JsonSerialize; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; /**  * 响应协议头  * @author zhang

SPListItem拼接成Json格式

可以试着将SPList.Items转化成Json格式. public static string GetJsonFormSplistItem(SPListItem item, string[] strArr) { string json = "{"; for (int i = 0; i < item.ParentList.Fields.Count - 1; i++) { string fieldName = item.ParentList.Fields[i].InternalNa

Map对象转换成Json格式的String字符串

1 //action处理页面发来的String,put到map转换成Json格式的String字符串 2 @RequestMapping("/seleteOaOrder") 3 @ResponseBody 4 public Object seleteOaOrder(String param){//param = "小明"; 5 System.out.println("+++++++++++++++++param:"+param); 6 if(pa

C#自定义将各种对象转换成JSON格式的类

这个C#封装类可以用于将各种格式的数据转换成JSON格式,包括List转换成Json,普通集合转换Json ,DataSet转换为Json ,Datatable转换为Json ,DataReader转换为Json等,如果你需要将对象转换成JSON,可以使用这个类. using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Reflection; using

数据库记录转换成json格式 (2011-03-13 19:48:37) (转)

http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈   <?php/1.在company数据user表中取出10条数据,保存为数组2.在将数组转化为json格式,传递给js3.用json解析器将传递过来的json字符串转化为json对象,4.用document.write输出语句打印在页面上*/ $conn = mysql_connect(“loc

C# 将MSMQ消息转换成Json格式 【优化】

C# 将MSMQ消息转换成Json格式  [优化] 转换函数: private string ConvertToJSON(string label, string body) { //TODO: convert to json string[] Lablelist = label.Split('|'); string[] Bodylist = body.Split('|'); string JsonStr = "{\""; NameValueCollection nvc =