`
yuanke
  • 浏览: 74406 次
  • 性别: Icon_minigender_2
  • 来自: 临沂
社区版块
存档分类
最新评论

ext 树状结构组成json格式

    博客分类:
  • J2EE
阅读更多
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 下拉树

    下拉树的基本结构由两部分组成:一个文本框和一个关联的下拉面板。当用户点击文本框时,下拉面板会显示一个树状视图,其中包含可展开和折叠的节点。这种组件对于具有层级关系的数据集特别有用,例如组织结构、目录...

    静态ext树

    在Ext JS中,树形结构(Tree)是一种表示层次数据的控件,它由节点组成,每个节点可以有子节点,形成一种树状的层级关系。这种数据结构常用于展示文件系统、组织结构或任何具有层次关系的数据。静态ext树可能是指一...

    ExtJS下拉列表树控件

    下拉列表树控件结合了下拉框和树结构的特点,用户可以方便地在下拉菜单中展开和选择树形结构的数据。 在ExtJS中,下拉列表树控件通常由两个主要部分组成:`ComboBox` 和 `TreePanel`。`ComboBox` 是基础的下拉框...

    extjs tree

    - **Store**: 负责管理树的数据,可以是JSON或XML格式,包含节点的所有信息。 - **Model**: 定义树节点的数据结构,包括字段名和类型。 - **Loader**: 用于加载和解析数据,根据配置决定如何从服务器获取和解析...

    Extjs的tree

    TreePanel是由一系列节点(TreeNode)组成的,每个节点可以有子节点,形成树状结构。它包含头部(header)、主体(body)以及可选的工具栏(toolbar)。节点可以通过配置项进行定制,例如设置文本、图标、是否可选...

    Extjs 树示例

    1. **定义节点数据**:在ExtJS中,树的数据通常是JSON格式,包含了节点的ID、文本、子节点等信息。例如: ```json { text: "父节点", children: [ {text: "子节点1"}, {text: "子节点2"} ] } ``` 2. **配置...

    Extjs4的TreeGrid例子

    两者通过配置项进行关联,如`treeColumn`属性定义了显示树状结构的列。 3. **Columns配置**:除了默认的树形列,开发者还可以自定义额外的列来展示数据。这些列可以通过`columns`数组进行配置,包括宽度、对齐方式...

Global site tag (gtag.js) - Google Analytics