表结构:
tableName parentTable
A B
A C
B D
B E
C F
C G
展示树:
A
B C
D E F G
@Controller
public class ViewLevelMetaController {
private Log logger = LogFactory.getLog(this.getClass());
private StringBuffer nodeStr=new StringBuffer();
@Autowired
private ViewLevelMetaService viewLevelMetaService;
@Autowired
private TableTreeService tableTreeService;
@RequestMapping("/metadata/getViewLevelTableCreateInfo.do")
public String getViewLevelTableCreateInfo(ModelMap model, String table) {
logger.info("getViewLevelTableCreateInfo");
List<treeNode> nodeList = tableTreeService.getTreeNodeList();
//当json字符串为空时才输出,防止重复输出
if("[]".equals(modifyStr(nodeStr.toString()))){
getTreeNode(nodeList, new treeNode("A","A"));
}
model.put("treeNodeStr",modifyStr(nodeStr.toString()));
return "metadata/main";
}
/**
* 修饰一下才能满足Json格式
* @param nodeStr
* @return
*/
public String modifyStr(String nodeStr){
return ("["+nodeStr+"]").replaceAll(",]", "]");
}
/**
* 把树组装成json格式数据
* A
* B C
*
* [{tableName:'A',url:'null',children:[
* {tableName:'B',url:'null',children:null},
* {tableName:'C',url:'null',children:null}
* ]}]
*
* @param treeNodeList
* @param node
*/
private void getTreeNode(List<treeNode> treeNodeList, treeNode node){
if(hasChild(treeNodeList,node)){
nodeStr.append("{tableName:");
nodeStr.append("'"+node.getTableName()+"'");
nodeStr.append(",url:");
nodeStr.append("'"+node.getUrl()+"'");
nodeStr.append(",children:[");
List<treeNode> childNodeList = getChildList(treeNodeList,node);
for(treeNode childNode:childNodeList){
getTreeNode(treeNodeList,childNode);
}
nodeStr.append("]},");
}else{
nodeStr.append("{tableName:");
nodeStr.append("'"+node.getTableName()+"'");
nodeStr.append(",url:");
nodeStr.append("'"+node.getUrl()+"'");
nodeStr.append(",children:null},");
}
}
/**
* 判断是否有子节点
* @param list
* @param node
* @return
*/
private boolean hasChild(List<treeNode> list, treeNode node){
return getChildList(list,node).size()>0?true:false;
}
/**
* 得到子节点列表
* @param list
* @param node
* @return
*/
private List<treeNode> getChildList(List<treeNode> list , treeNode node){
List<treeNode> li = new ArrayList<treeNode>();
for(treeNode l:list){
if(l.getParentTable().equals(node.getTableName())){
li.add(l);
}
}
return li;
}
}
相关推荐
本文实例讲述了thinkphp5框架实现数据库读取的数据转换成json格式。分享给大家供大家参考,具体如下: 首先从数据库读数据,然后调用list_to_tree方法,再调用findchild方法,最后输出 $category = DB::name('...
将数据库中的表转成json格式,可在.net的js中直接调用json文件,也可以unity3d中通过www读取json格式的数据!
php中,从数据库读取数据,并以json格式返回数据。具体方法如下: 第一步,定义相关变量 $servername = "localhost"; $username = "root"; $password = "root"; $mysqlname = "datatest"; $json = ''; $data = ...
Flume二次开发,支持抽取MYSQL Oracle数据库数据 以JSON格式推送至Kafka。 demo: sql_json.sources.sql_source.type = com.hbn.rdb.source.SQLSource sql_json.sources.sql_source.connectionurl = jdbc:oracle:...
一个用于练习关键词搜索、分词的测试数据库,采用json格式存储,33M左右,可直接采用python等读取处理。
使用递归方法循环读取省市区的json文件数据,并保存到数据库中,经测试可以直接使用,代码里包含省市区的json文件,递归读取方法,可用作系统省市区数据初始化作用
递归循环读取省市区json文件数据,并保存到数据库中(很全面) 其中包含代码,json文件,实体类代码。轻松上手
这是一篇将最新的省市区json数据通过java读取之后,遍历然后存储到数据库中的资源,json数据和数据库sql都包含在内,.java文件中是通过url访问的,controller可能需要稍微改一下,不想搞得话就直接运行sql文件吧!
extjs读取解析后端json格式数据并显示条形图,非常好看的特效,只能用炫酷来形容,感兴趣就下载看看吧,用在自己的网站觉得吸引眼球!
Jquery中使用ajax,表单post提交数据 插入oracle数据库, html对应的文件中 将form 表单数据 转化为json 格式
开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
编译环境:vs2010或更高。 依赖库:mysql.data.dll 依赖数据:mysql数据库,json格式文件。如果没有mysql数据库,可注释mysql部分,调试读取查看json格式文件。
今天小编就为大家分享一篇php将从数据库中获得的数据转换成json格式并输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
高效的Sqlite使用json字符串,写入sqlite数据库和读取sqlite数据库中的json字段,源码中有源码和示例。不可多得!
本文将涉及到如何使用Python访问Mysql数据库及读取获取数据(前提需要安装MySQLdb第三方库哦),以及如何将数据转换为json数据,最后保存成文件输出。 代码如下:注释比较详细了。 # coding=utf-8 ''' Created on ...
1.前端用jquery-zTree插件,后端读取数据库配置,并封装成json格式,把树显示在前端。Strtus2+Spring架构。 2.内涵定时调度的配置和使用例子。Spring+Quartz
asp做WebService,从数据库中读取数据库以JSON格式输出数据,作为android的webservice
帮助你有效的认识json,并解决实际中常见的问题。