json轉樹狀結構


原數據格式

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

定義js方法:

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;    
            }  

調用js方法及轉換的數據格式

var jsonDataTree = transData(jsonData, 'id', 'pid', 'chindren');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM