如何用Java拼接JSON方式遍历整个树形节点

数据库表结构
我是用Java查询此表所有数据。
在用Java来For来拼接,但存大很大问题。无法遍历完,请大神给点思路和代码提示。
拼接JSOn的格式为:
{\"text\":\""+lists.get(i).getName()+"\",\"children\":[
chidren为子节点

//是类似这种吗
//控制层使用JSONArray jsonObject=JSONArray.fromObject();转换
Map<String,Object> map = new HashMap<String, Object>();

     map.put("id","1");

     map.put("text","实验外国语学校");

     List<Map<String,Object>> fatherList=new ArrayList<Map<String,Object>>();

     List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();

     for(Bean bean:list){

         if("1".equals(list.getParent_level())){
    
         Map<String,Object> map2=new HashMap<String, Object>();
    
         map2.put("id",list.getId());
    
         map2.put("text",list.getName());
    
         list.add(map2);
    
         }
    
     }
     map.put("children",list);

追问

看样子,是我没有表达清楚呀,我的意思是说拼接JSON是没有问题的,问题是我无法遍历所有树的子节点拼接起来。
大概就是我能拼接到主节点和主节点下面的子节点。就是这个子节点下面如果还有节点我就没有办法整了了,我不知道如何遍历

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-01
网上有直接把java对象转json的工具。追问

看样子,是我没有表达清楚呀,我的意思是说拼接JSON是没有问题的,问题是我无法遍历所有树的子节点拼接起来。
大概就是我能拼接到主节点和主节点下面的子节点。就是这个子节点下面如果还有节点我就没有办法整了了,我不知道如何遍历

追答

可能是你遍历的javascript代码有问题,注意数组[]和json对象{}的遍历方式。

第2个回答  2014-08-01
JSONArray jsonArray = JSONArray.fromObject(lists);
String strJson = jsonArray.toString();

既然你知道自己的问题所在,就可以百度“怎样把list变成json字符串”,这样一搜不就有答案了么,在这里问不是浪费时间么追问

看样子,是我没有表达清楚呀,我的意思是说拼接JSON是没有问题的,问题是我无法遍历所有树的子节点拼接起来。
大概就是我能拼接到主节点和主节点下面的子节点。就是这个子节点下面如果还有节点我就没有办法整了了,我不知道如何遍历

追答

你表述太NB!!什么是“问题是我无法遍历所有树的子节点拼接起来”,你又要遍历,又要拼接;你到底是从json字符串遍历成对象出了问题,还是从对象拼接成json字符串出了问题;json有自己的方法,可以把list变成json,也可以把json变成list,并且像你这样类似父目录,子目录的,我也做过,也是用的json自己的方法做的,自己百度下吧

追问

年轻人要有耐心,我的意思是我这边可以正常拼接JSON格式字符串,但是在循环的时候,没有好的办法,循环匹配树形结构。如果有多层子节点的,我无法循环来完成。我是想请教有没有好的思路和方法可以循环多层


这里我循环出来,但教务教科处下面还有子节点,我就是循环教务教科处这个节点找不到办法。这下明白我的意思没有

本回答被提问者和网友采纳
第3个回答  2020-03-19
可以用递归遍历树。
相似回答