Jquery UI 中Tree组件的json格式,java递归拼接demo
数据库中表数据,如下图:
实现的需求是,如果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();
}
最终的实现图如下
Jquery UI 中Tree组件的json格式,java递归拼接demo的更多相关文章
- jquery ui中 accordion的问题及我的解决方法
原文:jquery ui中 accordion的问题及我的解决方法 jquery有一套所谓的ui组件,很不错的.如果有兴趣的朋友,可以参考http://jqueryui.com/ 但其中的accord ...
- jquery ui中的dialog,官网上经典的例子
jquery ui中的dialog,官网上经典的例子 jquery ui中dialog和easy ui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这 ...
- 【Egret】中tree组件使用案例
Egret中tree组件使用案例,包含(文本过多时,自动换行功能) 下面代码结合http://bbs.egret.com/forum.php?mod=viewthread&tid=19028& ...
- JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换
首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是j ...
- JQuery UI中的Tabs与base元素摩擦的BUG
JQuery UI中的Tabs与base元素冲突的BUG 以前一直使用jquery-ui-1.8,最近打算试一下目前最新的版本1.11.但对于Tabs,页面是乱的,怎么也不正常.折腾了好几个小时,最后 ...
- UI5-技术篇-jQuery.ajax执行过程中Token验证及JSON格式传值问题
最近两天在测试OData服务类方法CREATE_DEEP_ENTITY及GET_EXPANDED_ENTITYSET,刚开始采用ODataModel方式调用没有任何问题,但是ODataModel采用的 ...
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
- [置顶] Flex中Tree组件无刷新删除节点
在Tree组件中经常要删除某个节点,而删除之后重新刷新加载该Tree组件会影响整个操作效果和效率,因此,无刷新删除就比较好,既删除了节点也没有刷新tree,而使Tree的状态处于删除之前的状态. 无刷 ...
- AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别
AmazeUI(妹子UI)是非常优秀的国产前端UI,现在来介绍一下AmazeUI中CSS组件.JS插件与Web组件的区别. CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就 ...
随机推荐
- java你应该学会什么
给初学者之一:浅谈java及应用学java 先说什么是Javajava是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来至于什么是对象什么是类,我就不废话了关于这两个概念的 ...
- MYSQL三种安装方式--rpm包安装
1. 首先检查机器里是否已经存在MySQL $ rpm -qa | grep mysql 2. 去官网下载相应的rpm包:https://dev.mysql.com/downloads/mysql/ ...
- C++学习笔记--从虚函数说开去
虚函数与纯虚函数: 虚函数:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,virtual 函数返回类型 函数名(参数表){函数体;} ,实现多态性,通过指向派生类的基类 ...
- request机制
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- 语言模型srilm基本用法
目录: 一基本训练 二语言模型打分 三语言模型剪枝 四语言模型合并 五语言模型使用词典限制 一.基本训练 #功能 读取分词后的text文件或者count文件,然后用来输出最后汇总的count文件或者语 ...
- python开发学习-day10(select/poll/epoll回顾、redis、rabbitmq-pika)
s12-20160319-day10 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- java EE : http 协议之请求报文、响应报文
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部 ...
- C# 使用UDP组播实现局域网桌面共享
最近需要在产品中加入桌面共享的功能,暂时不用实现远程控制:参考了园子里的一些文章,加入了一些自己的修改. 需求:将一台机器的桌面通过网络显示到多个客户端的屏幕上,显示内容可能为PPT,Word文档之类 ...
- 【笔试题】怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串?
笔试题 怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串? import java.io.UnsupportedEncodingException; public clas ...
- (转) redis的事务和watch
redis的事务 严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的. redis中的事务定义 Redis中的事务(transaction)是一组命令的集合. 事务同 ...