json转树状结构

原数据格式

varjsonData = 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":"电熨斗"}  ]');

定义js方法:

function transData(a, idStr, pidStr, chindrenStr){   

                varr = [], 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++){   

                    varaVal = a[j], hashVP = hash[aVal[pid]];   

                    if(hashVP){   

                        !hashVP[children] && (hashVP[children] = []);   

                        hashVP[children].push(aVal);   

                    }else{   

                        r.push(aVal);   

                    }   

                }   

                return r;   

            } 

调用js方法及转换的数据格式

varjsonDataTree = transData(jsonData, 'id', 'pid', 'chindren');

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容