public JSONArray loadOasys() {
JSONArray root = new JSONArray(); //定义根的json数组
int i=0,j=0;
conn= super.getConnection();
conn1= super.getConnection(); //连接数据库
try {
stmt = conn.createStatement();
stmt1 = conn.createStatement(); //创造语句
String sql ="select * from oasystem";
result = stmt.executeQuery(sql);
while (result.next()) { //用双重循环 最外面的循环
if((result.getInt(2))==0) { //标记根节点
JSONObject json1 = new JSONObject(); //把第一层放入到json中
json1.put("id", result.getInt("id"))
.put("text", result.getString("text"))
.put("leaf", (result.getInt("leaf")==1 ? true :false));
result1 = stmt1.executeQuery(sql); //创造第二次的查询语句
JSONArray child= new JSONArray(); //把第二层放入到json数组中
while (result1.next()) { //进行第二次循环
if((result1.getInt(2)==result.getInt(1)) ) { //根据子节点对于的pid
JSONObject json2 = new JSONObject(); //用jsonObject去装子节点
json2.put("id", result1.getInt("id"))
.put("text", result1.getString("text"))
.put("leaf", (result1.getInt("leaf")==1 ? true :false));
child.put(i++, json2); //把子节点放入到jsonArray中
}
}
i=0;
json1.put("children", child); //把json数组放入到上一层的json数据中
root.put(j++,json1); //最终吧所以的每一个根节点放入到最后的根节点中
}
}
conn.close();
root.toJSONObject(root); //然后把jsonArray转换为jsonObject
return root; //返回一个jsonArray
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
终于把树状结构用json从数据库读出来了,大家还有更好的处理方法可以指出来,大家共同学习!
分享到:
相关推荐
下拉树的基本结构由两部分组成:一个文本框和一个关联的下拉面板。当用户点击文本框时,下拉面板会显示一个树状视图,其中包含可展开和折叠的节点。这种组件对于具有层级关系的数据集特别有用,例如组织结构、目录...
在Ext JS中,树形结构(Tree)是一种表示层次数据的控件,它由节点组成,每个节点可以有子节点,形成一种树状的层级关系。这种数据结构常用于展示文件系统、组织结构或任何具有层次关系的数据。静态ext树可能是指一...
下拉列表树控件结合了下拉框和树结构的特点,用户可以方便地在下拉菜单中展开和选择树形结构的数据。 在ExtJS中,下拉列表树控件通常由两个主要部分组成:`ComboBox` 和 `TreePanel`。`ComboBox` 是基础的下拉框...
- **Store**: 负责管理树的数据,可以是JSON或XML格式,包含节点的所有信息。 - **Model**: 定义树节点的数据结构,包括字段名和类型。 - **Loader**: 用于加载和解析数据,根据配置决定如何从服务器获取和解析...
TreePanel是由一系列节点(TreeNode)组成的,每个节点可以有子节点,形成树状结构。它包含头部(header)、主体(body)以及可选的工具栏(toolbar)。节点可以通过配置项进行定制,例如设置文本、图标、是否可选...
1. **定义节点数据**:在ExtJS中,树的数据通常是JSON格式,包含了节点的ID、文本、子节点等信息。例如: ```json { text: "父节点", children: [ {text: "子节点1"}, {text: "子节点2"} ] } ``` 2. **配置...
两者通过配置项进行关联,如`treeColumn`属性定义了显示树状结构的列。 3. **Columns配置**:除了默认的树形列,开发者还可以自定义额外的列来展示数据。这些列可以通过`columns`数组进行配置,包括宽度、对齐方式...