TreeGrid节点数组数据
var data = [{
Id: 1,
Key: 'method',
Value: 'Post|Get',
Pid: -1
}, {
Id: 2,
Key: 'filter',
Value: '',
Pid: -1
}, {
Id: 3,
Key: '$and',
Value: '',
Pid: 2
}, {
Id: 4,
Key: 'bo: well',
Value: 'bo: well',
Pid: 3
}, {
Id: 5,
Key: 'it: pt',
Value: 'it: pt',
Pid: 3
}, {
Id: 6,
Key: 'table',
Value: '',
Pid: -1
}, {
Id: 7,
Key: '资料名称',
Value: 'b:title',
Pid: 6
}, {
Id: 8,
Key: '格式',
Value: 'u:format',
Pid: 6
}];
层次结构的对象数据
var param = {
"method": "Post|Get",
"filter": {
"$and": {
"bo: well": "bo: well",
"it: pt": "it: pt"
}
},
"table": {
"资料名称": "b:title",
"格式": "u:format"
}
}
TreeGrid节点数组转层级对象
function ToTreeObject(data, pid) {
var result = {};
for (var i = 0; i < data.length; i++) {
if (data[i].Pid == pid) {
var key = data[i].Key;
var value = data[i].Value;
result[key] = value;
if (value == '') {
result[key] = ToTreeObject(data, data[i].Id);
}
}
}
return result;
}
调用方法,默认顶级节点id为-1
var result = ToTreeObject(data, -1);
层级对象转TreeGrid节点数组,全局变量id做自定义id自增
var id = 1;
function ToTreeGrid(data, result, pid) {
for (var attr in data) {
if (typeof data[attr] == 'string') {
var obj = {}
obj.Id = id;
id += 1;
obj.Pid = pid;
obj.Key = attr;
obj.Value = data[attr];
result.push(obj);
} else {
var obj = {}
obj.Id = id;
id += 1;
obj.Pid = pid;
obj.Key = attr;
obj.Value = "";
result.push(obj);
ToTreeGrid(data[attr], result, obj.Id);
}
}
return result;
}
调用方法,默认顶级节点id为-1
var result = [];
result = ToTreeGrid(param, result, -1);