jqTree - 从json创建树数据 [英] jqTree - creating tree data from json

查看:105
本文介绍了jqTree - 从json创建树数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to display a tree using jqTree - http://mbraak.github.com/jqTree

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

I need help with creating the tree data from JSON.

我的JSON数据如下所示:

My JSON data looks like this:

    {
"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' }
                    ]
                }]
            }
            ]
    }
    ];


推荐答案

这是一个改编自 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;
    }

这篇关于jqTree - 从json创建树数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆