json转树状结构(js)
来源:互联网 发布:jsp与php运行环境区别 编辑:程序博客网 时间:2024/06/07 06:30
转自:http://rockyuse.iteye.com/blog/1541308
/** * json格式转树状结构 * @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 < len; i++){ hash[a[i][id]] = a[i]; } for(; j < len; 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; } var jsonData = eval('[{"id":"4","pid":"1","name":"大家电"},{"id":"5","pid":"1","name":"生活电器"},{"id":"1","pid":"0","name":"家用电器"},{"id":"2","pid":"0","name":"服饰"},{"id":"3","pid":"0","name":"化妆"},{"id":"7","pid":"4","name":"空调"},{"id":"8","pid":"4","name":"冰箱"},{"id":"9","pid":"4","name":"洗衣机"},{"id":"10","pid":"4","name":"热水器"},{"id":"11","pid":"3","name":"面部护理"},{"id":"12","pid":"3","name":"口腔护理"},{"id":"13","pid":"2","name":"男装"},{"id":"14","pid":"2","name":"女装"},{"id":"15","pid":"7","name":"海尔空调"},{"id":"16","pid":"7","name":"美的空调"},{"id":"19","pid":"5","name":"加湿器"},{"id":"20","pid":"5","name":"电熨斗"}]'); var jsonDataTree = transData(jsonData, 'id', 'pid', 'chindren'); console.log(jsonDataTree); //结果如下:[{"id":"1","pid":"0","name":"家用电器", "chindren":[{"id":"4","pid":"1","name":"大家电", "chindren":[{"id":"7","pid":"4","name":"空调", "chindren":[{"id":"15","pid":"7","name":"海尔空调"},{"id":"16","pid":"7","name":"美的空调"}]},{"id":"8","pid":"4","name":"冰箱"},{"id":"9","pid":"4","name":"洗衣机"},{"id":"10","pid":"4","name":"热水器"}]},{"id":"5","pid":"1","name":"生活电器","chindren":[{"id":"19","pid":"5","name":"加湿器"},{"id":"20","pid":"5","name":"电熨斗"}]}]},{"id":"2","pid":"0","name":"服饰","chindren":[{"id":"13","pid":"2","name":"男装"},{"id":"14","pid":"2","name":"女装"}]},{"id":"3","pid":"0","name":"化妆","chindren":[{"id":"11","pid":"3","name":"面部护理"},{"id":"12","pid":"3","name":"口腔护理"}]}]
2 1
- json转树状结构(js)
- json转树状结构(js)
- 【知识记录】json转树状结构(js)
- json转json树状结构
- json简单格式转树状结构 工具方法
- 树状结构(经典)
- (13)树状结构
- golang 将json串转换为树状结构
- 树状结构
- 树状结构
- 树状结构
- Js Json字符串转json
- 数据结构系列(5)树状结构
- 扩展juery 将 js object对象 转成 json结构字符串 用于ajax 传递json (验证可用)后台 对应fastJSON
- jquery前端递归打印出树状结构的多层复杂map或json键值对数据
- Js字符串转json
- js json转excel
- js数组转json
- POJ 1887 Testing the CATCHER
- 字符设备(4)ioctl
- Java生产者和消费者问题
- sort函数
- 当太阳不再上升的时候
- json转树状结构(js)
- SQL Server2005排名函数
- 《数据结构》、《软件工程》、《C语言》等专业课后
- HDU2045 不容易系列之(3)—— LELE的RPG难题
- Android SDK工具(谷歌提供的16个工具)简介
- .NET视频总结
- 字符设备(5)select
- cocos2dx 多点触摸
- SQLServer2005中加入的替换null的函数