Jquery UI 中Tree组件的json格式,java递归拼接demo
2023-09-27 14:22:40 时间
数据库中表数据,如下图:
实现的需求是,如果suporgcode数据为null 的情况下,表示在一级节点 "请选择" 的二级节点,然后是如:3和36 是1的子节点,一步一步的节点延伸
java代码拼接方式如下:
/** * 拼接成json类型 事故类型 * @author 刘仁奎 */ public String createJSONData(String instcode){ // 查询一级节点 String sql="select orgcode,orgname,suporgcode from swe_emerplanorg where instcode='"+instcode+"' and suporgcode is null order by orgcode"; List list=jdbcT.queryForList(sql); StringBuffer json=new StringBuffer("[{\"id\":\"0\",\"text\":\"请选择\",\"children\":["); // 初始化根节点 if(list!=null && list.size()>0){ for(int i=0; i<list.size();i++){ Map v_map = (Map)list.get(i); json.append(this.getChildren(instcode,v_map.get("ORGCODE").toString())); // 获取子节点 } json=new StringBuffer(json.substring(0, json.length()-1)+"]}]"); } System.out.println(json); return json.toString(); } /** * 得到子节点 */ private String getChildren(String instcode,String orgcode){ String sql = "select orgcode,orgname,suporgcode from swe_emerplanorg where instcode ='"+instcode+"' and orgcode='"+orgcode+"' and suporgcode is null order by orgcode"; List list=jdbcT.queryForList(sql); StringBuffer child_json=new StringBuffer(); if(list!=null && list.size()>0){ for(int i=0; i<list.size();i++){ Map v_map = (Map)list.get(i); child_json.append("{\"id\":\""+v_map.get("ORGCODE").toString().trim()+"\","); child_json.append("\"text\":\""+v_map.get("ORGNAME").toString().trim()+"\""); String sql_2 = "select orgcode,orgname,suporgcode from swe_emerplanorg where instcode ='"+instcode+"' and suporgcode='"+v_map.get("ORGCODE")+"' order by orgcode"; List t_l=jdbcT.queryForList(sql_2); if(t_l!=null && t_l.size()>0){ child_json.append(",\"children\":["); for(int t=0; t<t_l.size();t++){ Map t_m = (Map)t_l.get(t); child_json.append("{\"id\":\""+t_m.get("ORGCODE").toString().trim()+"\","); child_json.append("\"text\":\""+t_m.get("ORGNAME").toString().trim()+"\""); child_json.append(getNodes(instcode,t_m.get("ORGCODE").toString())); // 下级节点 } child_json=new StringBuffer(child_json.substring(0, child_json.lastIndexOf(","))+"]},"); }else{ child_json.append("},"); } } }else{ child_json.append("},"); } return child_json.toString(); } /** * 获得节点 */ public String getNodes(String instcode,String orgcode){ String sql = "select orgcode,orgname,suporgcode from swe_emerplanorg where instcode ='"+instcode+"' and suporgcode ='"+orgcode+"' order by orgcode"; List list=jdbcT.queryForList(sql); StringBuffer j_s=new StringBuffer(); if(list!=null && list.size()>0){ j_s.append(",\"children\":["); for(int i=0; i<list.size();i++){ Map t_m = (Map)list.get(i); j_s.append("{\"id\":\""+t_m.get("ORGCODE").toString().trim()+"\","); j_s.append("\"text\":\""+t_m.get("ORGNAME").toString().trim()+"\""); j_s.append(getNodes(instcode,t_m.get("ORGCODE").toString())); } }else{ j_s.append("},"); } if(j_s.toString().contains("children")){ j_s=new StringBuffer(j_s.substring(0, j_s.lastIndexOf(","))); j_s.append("]},"); } return j_s.toString(); }
最终的实现图如下
相关文章
- JVM01---Java中的内存区域以及重点介绍堆与栈
- IntelliJ IDEA 如何在 Java 中进行快速注释
- Java实现最大连续子序列
- Java自定义连接池
- 美团Java开发工程师岗位职能要求,完整版开放下载
- 针对Java 四大域对象的汇总
- java.nio.Buffer flip()方法的用法详解
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.5.6 访问目录中的项
- String与Date(java.util.Date)互转(转)
- Java常用开发工具
- java笔记
- java UTF8 HEX
- Java NIO 与 基于reactor设计模式的事件处理模型
- java面试资源(面试题、面试经验等)
- 详解23种设计模式(基于Java)—— 综合练习之自定义Spring IoC(五 / 五)
- Java集合类
- java面向对象(三)之抽象类,接口
- java集合框架复习----(4)Map、List、set
- JAVA编程思想(1) - 一切都是对象
- 已解决|main |SpringApplication.java:826 |org.springframework.boot.SpringApplication |Application run fa
- android,java,js,jquery,python入口函数,你的语言呢?
- 1050 螺旋矩阵(JAVA)