EasyUI treegrid 生成json格式的方法

转换前的json数据:

转换后的json:

转换的方法:

       /*将一般的JSON格式转为EasyUI TreeGrid树控件的JSON格式
        * @param rows:json数据对象
        * @param idFieldName:表id的字段名
        * @param pidFieldName:表父级id的字段名
        * @param fileds:要显示的字段,多个字段用逗号分隔
        */
        function ConvertToTreeGridJson(rows, idFieldName, pidFieldName, fileds) {
            function exists(rows, ParentId) {
                for (var i = 0; i < rows.length; i++) {
                    if (rows[i][idFieldName] == ParentId)
                        return true;
                }
                return false;
            }
            var nodes = [];
            // get the top level nodes
            for (var i = 0; i < rows.length; i++) {
                var row = rows[i];
                if (!exists(rows, row[pidFieldName])) {
                    var data = {
                        id: row[idFieldName]
                    }
                    var arrFiled = fileds.split(",");
                    for (var j = 0; j < arrFiled.length; j++)
                    {
                        if (arrFiled[j] != idFieldName)
                            data[arrFiled[j]] = row[arrFiled[j]];
                    }
                    nodes.push(data);
                }
            }

            var toDo = [];
            for (var i = 0; i < nodes.length; i++) {
                toDo.push(nodes[i]);
            }
            while (toDo.length) {
                var node = toDo.shift(); // the parent node
                // get the children nodes
                for (var i = 0; i < rows.length; i++) {
                    var row = rows[i];
                    if (row[pidFieldName] == node.id) {
                        var child = {
                            id: row[idFieldName]
                        };
                        var arrFiled = fileds.split(",");
                        for (var j = 0; j < arrFiled.length; j++) {
                            if (arrFiled[j] != idFieldName) {
                                child[arrFiled[j]] = row[arrFiled[j]];
                            }
                        }
                        if (node.children) {
                            node.children.push(child);
                        } else {
                            node.children = [child];
                        }
                        toDo.push(child);
                    }
                }
            }
            return nodes;
        };

调用示例:

        //假设这是从后台获取到的json数据
        var dataJsonObj = [{ 'Id': 1, 'ParentId': 0, 'Title': '猫分类', 'CreateTime': '2015/06/04 01:05:32' }, { 'Id': 2, 'ParentId': 1, 'Title': '田园猫', 'CreateTime': '2015/06/04 01:11:30' }, { 'Id': 3, 'ParentId': 1, 'Title': '英国短毛猫', 'CreateTime': '2015/06/04 01:11:51' }, { 'Id': 4, 'ParentId': 1, 'Title': '布偶猫', 'CreateTime': '2015/06/04 01:12:05' }];
        //要显示的字段
        var fileds = "Id,Title,CreateTime";
        //获取已转为符合treegrid的json的对象
        var nodes = ConvertToTreeGridJson(dataJsonObj, "Id", "ParentId", fileds);
        //json即为treegrid需要的json格式数据
        var json = JSON.stringify(nodes);

下载地址:

http://download.csdn.net/detail/somethingwhat/8770195

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值