【问题标题】:jqTree - creating tree data from jsonjqTree - 从 json 创建树数据
【发布时间】:2012-05-01 22:22:31
【问题描述】:

我正在尝试使用 jqTree 显示一棵树 - http://mbraak.github.com/jqTree

我在从 JSON 创建树数据方面需要帮助。

我的 JSON 数据如下所示:

    {
"d" : {
"results": [
    {
        "Title": "Committee A", 
        "ReportsToId": null, 
        "Rank": 1, 
        "Id": 5
    }, 
    {   
        "Title": "Committee B", 
        "ReportsToId": 5, 
        "Rank": 2, 
        "Id": 7
    }, 
    {
        "Title": "Committee C",
        "ReportsToId": 7, 
        "Rank": 3, 
        "Id": 13
    }, 
    {   
        "Title": "Committee D",
        "ReportsToId": 13, 
        "Rank": 4, 
        "Id": 1
    }, 
    {
        "Title": "Committee E",
        "ReportsToId": 13, 
        "Rank": 4, 
        "Id": 3
    }
]
}
}

我想这样结束:

    var treeData = [
    {
        label: 'Committee A',
        children: [
            {
                label: 'Committee B',
                children: [
                {
                    label: 'Committee C',
                    children: [
                        { label: 'Committee D' },
                        { label: 'Committee E' }
                    ]
                }]
            }
            ]
    }
    ];

【问题讨论】:

    标签: javascript jquery tree


    【解决方案1】:

    这是改编自http://www.jqwidgets.com/populating-jquery-tree-with-json-data/的解决方案:

    var jqTreeData = function (data) {
            var source = [];
            var items = [];
            // build hierarchical source.
            for (i = 0; i < data.length; i++) {
                var item = data[i];
                var title = item["Title"];
                var reportsToId = item["ReportsToId"];
                var id = item["Id"];
    
                if (items[reportsToId]) {
                    var item =
                    {
                        label: title
                    };
    
                    if (!items[reportsToId].children) {
                        items[reportsToId].children = [];
                    }
    
                    items[reportsToId].children[items[reportsToId].children.length] = item;
                    items[id] = item;
                }
                else {
                    items[id] =
                    {
                        label: title
                    };
    
                    source[0] = items[id];
                }
            }
            return source;
        }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多