表结构:
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;
}
}
相关推荐
此外,当从数据库读取数据并转换为JSON时,应确保数据的安全性和完整性,例如,对敏感信息进行适当的加密或脱敏处理,以及防止SQL注入等攻击。 总之,将数据库的Table表转换成JSON格式的字符串是现代Web应用中常见...
在本文中,我们将深入探讨如何使用ThinkPHP5框架将从数据库读取的数据转换为JSON格式。这个过程对于前端展示数据,特别是与JavaScript交互时非常关键,因为JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时...
将数据库中的表转成json格式,可在.net的js中直接调用json文件,也可以unity3d中通过www读取json格式的数据!
一个用于练习关键词搜索、分词的测试数据库,采用json格式存储,33M左右,可直接采用python等读取处理。
在PHP中,从数据库读取数据并以JSON(JavaScript Object Notation)格式返回是一种常见的做法,特别是在Web服务和API开发中。JSON因其轻量级、易于解析和人类可读的特性,成为数据交换的首选格式。以下是一个详细的...
// 读取JSON数组并解析 List<Record> records = mapper.readValue(rootNode.findValuesAsText("array_name"), new TypeReference<List<Record>>() {}); ``` 4. **连接MySQL数据库** 使用JDBC(Java Database ...
标题中的“通过Autojs获取的学习题目Json数据库”指的是使用Autojs这一自动化脚本工具来处理和操作学习题目的Json格式数据,并将其存储为数据库。Autojs是一款基于Android平台的JavaScript编程工具,允许用户编写...
在Python编程中,有时我们需要处理大量数据,例如从Excel文件中读取数据并将其转换成其他格式,如JSON。在给定的示例中,它演示了如何使用Python3读取多个Excel文件并将数据写入一个JSON文件。下面将详细解释这个...
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文件并解析成Python对象。 - 定义递归函数,处理每个省市区节点并保存到数据库。 - 主程序部分,调用递归函数并管理数据库连接。 5. **注意事项**: - JSON文件的结构应与数据库表结构匹配,以确保...
这通常涉及到读取Json文件内容,然后将其转换为编程语言中的对象。例如,在.NET框架中,我们可以使用`System.Text.Json`库来实现这个过程。以下是一个简单的C#示例: ```csharp using System.IO; using System.Text...
本教程将详细介绍如何读取`Assets`中的资源文件,并进行JSON解析。 首先,让我们理解什么是`Assets`目录。在Android工程的`src/main`目录下,有一个名为`assets`的特殊目录,开发者可以在这里放置各种类型的文件,...
"JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现" JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现是指将JSON复杂数据处理后的数据转换为Java对象,并将其存储到数据库中。...
在IT领域,将数据从JSON文件中读取并存储到数据库是常见的操作,尤其是在处理层次结构数据时。本示例中的“递归循环读取省市区json文件数据,并保存到数据库中”是一个全面的教程,它涵盖了从JSON解析到数据库交互的...
为了从数据库读取数据并以JSON格式返回,我们可能会有以下步骤: 1. 配置Spring的数据库连接,通常在`applicationContext.xml`或`application.properties`中设置数据源。 2. 创建一个服务类(Service),使用Spring...
1. **使用Java I/O流**:这是最基础的方法,通过`java.io`包中的`FileReader`和`BufferedReader`类,可以打开并读取JSON文件内容。例如: ```java File file = new File("src/main/resources/jsonfile.json"); ...
标题 "USDA食品数据库JSON文件.rar" 涉及到的是一个有关食品数据的资源,该资源以JSON格式存储,通常用于数据处理和分析。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
在 Java 中,读写 JSON 格式的文件主要分为三步:第一步是读取文件内容,第二步是将文件内容格式化成 JSON 对象,第三步是将 JSON 对象转换成 Java 对象。 首先,需要了解 JSON 格式的基本结构,JSON 格式由键值对...