展开全部
/**
* json格式62616964757a686964616fe4b893e5b19e31333337613136转树状结构
* @param{json}json数据
* @param{String}id的字符串
* @param{String}父id的字符串
* @param{String}children的字符串
* @return{Array}数组
*/
function transData(a, idStr, pidStr, chindrenStr){
var r = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, i = 0, j = 0, len = a.length;
for(; i
hash[a[i][id]] = a[i];
}
for(; j
var aVal = a[j], hashVP = hash[aVal[pid]];
if(hashVP){
!hashVP[children] && (hashVP[children] = []);
hashVP[children].push(aVal);
}else{
r.push(aVal);
}
}
return r;
}
以上方法完全可以满足你的 需求,Json属性结构的转换。
调用方法:var a=[ {
"a" : "5",
"id" : "0000",
"parent_id" : "null"
}, {
"a" : "1",
"id" : "1000",
"parent_id" : "0000"
}, {
"a" : "2",
"id" : "2000",
"parent_id" : "0000"
}, {
"a" : "6",
"id" : "1001",
"parent_id" : "1000"
}, {
"a" : "6",
"id" : "1002",
"parent_id" : "1000"
}, {
"a" : "23",
"id" : "2001",
"parent_id" : "2000"
}, {
"a" : "11",
"id" : "2002",
"parent_id" : "2000"
} ];
var b=transData(a,"id","parent_id","children");
那么b就是你需要的结构。transData方法在以后遇到类似结构的数据,都可以使用!
以上的所有方法都是JavaScript !