遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)
"root":{
"children":[
{
"name":"AA",
"children":[
{
"nam1":"AA1",
"children":[
{
"name":"AAA1",
"children":[{
"name":"xsA",
"children":"",
"parameter":{"name":"xsA","OT":18,"NT":12}
}],
"parameter":{"name":"AAA1","OT":1800,"NT":12000}
},
{
"name":"AAA2",
"children":"",
"parameter":{"name":"AAA2","OT":1100,"NT":1400}
},
{
"name":"AAA3",
"children":"",
"parameter":{"name":"AAA3","OT":100,"NT":700}
}
],
"parameter":{"name":"AA1","OT":3000,"NT":1389}
},
{
"name":"AA2",
"children":[
{
"name":"AA2A",
"children":"",
"parameter":{"name":"AA2A","OT":1800,"NT":12000}
},
{
"name":"AA2B",
"children":"",
"parameter":{"name":"AA2B","OT":1100,"NT":1400}
}
],
"parameter":{"name":"AA2","OT":3000,"NT":1389}
}
],
"parameter":{"name":"AA","OT":1000,"NT":400}
},
{
"name":"BB",
"children":[
{
"name":"BB1",
"children":[
{
"name":"BBB1",
"children":"",
"parameter":{"name":"BBB1","OT":1800,"NT":12000}
},
{
"name":"BBB2",
"children":"",
"parameter":{"name":"BBB2","OT":1100,"NT":1400}
},
{
"name":"BBB3",
"children":"",
"parameter":{"name":"BBB3","OT":100,"NT":700}
}
],
"parameter":{"name":"BB1","OT":3000,"NT":1389}
},
{
"name":"BB2",
"children":[
{
"name":"BB2A",
"children":"",
"parameter":{"name":"BB2A","OT":1800,"NT":12000}
},
{
"name":"BB2B",
"children":"",
"parameter":{"name":"BB2B","OT":1100,"NT":1400}
}
],
"parameter":{"name":"BB2","OT":3000,"NT":1389}
}
],
"parameter":{"name":"BB","OT":20,"NT":8000}
},
{
"name":"CC",
"children":"",
"parameter":{"name":"CC","OT":500,"NT":2}
}
]
}
js代码
$(function(){
var treeTR,JsonOBJ,arrColumn,cloum,cc;
$.getJSON("html/template/template.json", function(msg){
//msg:root获取所有的数据
JsonOBJ=msg.root.children;
arrColumn=msg.Column;
//创建TH
treeTR+="<tr>";
for(var t=0;t<arrColumn.length;t++){
treeTR +="<th>" +arrColumn[t]+ "</th>";
}
treeTR+="</tr>";
//创建底层节点s
for(var i=0;i< JsonOBJ.length;i++){
treeTR += "<tr data-tt-id='"+i+"'>" ;
for(var k=0;k<arrColumn.length;k++){
cloum=arrColumn[k];
treeTR +="<td>" +JsonOBJ[i].parameter[cloum]+ "</td>";
}
treeTR += "</tr>";
cc= i;
tree(JsonOBJ[i].children,cc);
}
//example-advanced 为table的ID
$("#example-advanced").append(treeTR);
$("#example-advanced").treetable({ expandable: true });
});
}
//加载树的子节点
function tree(w,bb){
for(var j=0;j< w.length;j++){
treeTR += "<tr data-tt-id='"+bb+'-'+j+"' data-tt-parent-id='"+bb+"'>" ;
for(var m=0;m<arrColumn.length;m++){
cloum=arrColumn[m];
treeTR += "<td>" +w[j].parameter[cloum]+ "</td>";
}
treeTR += "</tr>";
if(jQuery.isArray(w[j].children)){
cc=bb+"-"+j;
//递归遍历所有的子节点
tree(w[j].children,cc);
}
}
});
上图:有图有真相嘛,俗话所得好:

搞定晒!
遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)的更多相关文章
- Qt 使用大神插件快速创建树状导航栏
前言 本博客仅仅记录自己的采坑过程以及帮助网友避坑,方便以后快速使用自定义控件,避免重复出错. 下载插件 大神 Github Qt 自定义控件项目地址:https://github.com/feiya ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- 前端笔记之jQuery(下)事件&节点操作&净位置&拖拽&页面卷动值&遍历JSON
一.监听事件大全 1.1 JavaScript事件 onblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onfoc ...
- MySQL递归查询树状表的子节点、父节点具体实现
mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...
- for in 遍历json
获取对象属性的语法: 1.obj.attr 2.obj["attr"] for in 遍历json的时候, 1.for(attr in json)中的attr获取到的是json中属 ...
- js声明json数据,打印json数据,遍历json数据
1.js声明json数据: 2.打印json数据: 3.遍历json数据 //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿对象型) json['b'] = ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- webform 创建树
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- fastJson顺序遍历JSON字段
fastJson在把json格式的字符串转换成JSONObject的时候,使用的是HashMap,所以排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用L ...
随机推荐
- Spring Data Rest 支持Put请求
最近在用 Spring Data Rest 写WebApi 遇到Put请求后报415 Mieda Type 的错误,GG了下 找到个解决办法,下面是针对Put请求的过滤. 1 public class ...
- MSSQL Rebuild(重建)索引
MSSQL Rebuild(重建)索引 前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql: DECLARE @tab ...
- JDBC连接数据库(MySQL)
package com.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe ...
- oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
总结,下面是两个问题.问题1是用户可以在所有表空间创建表;问题2是exp不能导出空表 问题1: 版本:oracle 11.2.0.1.0 select * from v$version; 创建用户aa ...
- CF 322B Ciel and Flowers 贪心水题
B. Ciel and Flowers time limit per test 1 second memory limit per test 256 megabytes input standard ...
- javaSocket与C通信
前段时间写了个web端与C服务端之间的通信不过用的是短连接 非堵塞的方式,一直想使用长连接,使tomcat启动的时候就和C服务端进行通信,但是一直没找到方法希望je的朋友能给点思路.先来看我现在的具体 ...
- Python中的eval()、exec()及其相关函数
刚好前些天有人提到eval()与exec()这两个函数,所以就翻了下Python的文档.这里就来简单说一下这两个函数以及与它们相关的几个函数,如globals().locals()和compile() ...
- 两行代码实现微信小程序联系人sidebar
话不多说,先给你们看看核心数据和结构: 一.数据: city的json array,letter的array (city的json array里的首字母是我手工放置进去的,你也可以通过for循环获得c ...
- windows环境下解决web服务假死的问题
最近在windows系统在部署web服务器,发现很不稳定.web服务有容易假死,改过配置换过各种web软件,如apache.nginx都不管用. 所以干脆做个简易的定时检测Web服务状态的软件.一旦w ...
- Flexible 弹性盒子模型之CSS align-items 属性
实例 居中对齐弹性盒的各项 <div> 元素: div { display: flex; align-items:center; } 复制 效果预览 浏览器支持 表格中的数字表示支持该属性 ...