为EXTJS TreeGrid预处理JSON的方法?

时间:2014-05-18 20:08:03

标签: json extjs preprocessor

我试图确定预处理JSON以便在EXTJS TreeGrid中使用的最佳方法。我的理解是EXTJS期望以下列方式格式化JSON:

{
    "text":".",
    "children": [
        {
            Location:'New Jersey',
            iconCls:'task-folder',
            expanded: true,
            children:[
                {
                    Building:'North-west Building',
                    iconCls:'task-folder',
                    children: [
                        {
                            Computer: '#12345',
                            Owner: 'Tommy Maintz',
                            iconCls: 'task',
                            leaf: true
                        }, 
                        {
                            Computer: '#98776',
                            Owner: 'Robert Maintz',
                            iconCls: 'task',
                            leaf: true
                        }
                    ]
                }
            ]
        }
    ]
}

不幸的是,我使用的数据源输出平坦的JSON:

{
    Computer: '#12345',
    Owner: 'Tommy Maintz',
    Building:'North-west Building',
    Location:'New Jersey'
}
 {
    Computer: '#98776',
    Owner: 'Robert Maintz',
    Building:'North-west Building',
    Location:'New Jersey'
}

我可以使用哪些EXT方法预处理我的JSON以使用TreeGrid?

1 个答案:

答案 0 :(得分:1)

没有内置的功能/方法可以做你想要的,因此编码是不可避免的。一些建议:

  1. 您不会使用该字符串,但您可以使用var o = Ext.decode(json);将原始json转换为对象o
  2. 您可以使用Ext.each()遍历生成的数组或对象
  3. 我会编写一个递归例程来构造生成的嵌套对象
  4. 当您拥有具有所需结构的对象时,可以使用tree.setRootNode(result)填充树。