从后台获得的json格式字符串如下:
[{"thisNode":"10000480","prientNode":"10000480","level":"0","isLeaf":"0","children":[{"level":"1","prientNode":"10000440","thisNode":"10000480","isLeaf":"1","children":[]},{"level":"1","prientNode":"10000441","thisNode":"10000480","isLeaf":"0","children":[{"level":"2","prientNode":"100660","thisNode":"10000441","isLeaf":"1","children":[]}]}]}]
格式有点乱啊,不好意思。
我在前台的js中要怎么遍历出来啊,谢谢。
//存放获取的节点
var nodes = [];
//递归获取节点
function getNodes(treenodes)
{
if (treenodes.length > 0)
{
for (var i = 0; i < treenodes.length; i++)
{
var node = {};
node.thisNode = treenodes[i].thisNode;
node.prientNode = treenodes[i].prientNode;
node.level = treenodes[i].level;
node.isLeaf = treenodes[i].isLeaf;
nodes.push(node);
if (treenodes[i].children)
{
getNodes(treenodes[i].children);
}
}
}
}
var data = [{"thisNode":"10000480","prientNode":"10000480","level":"0","isLeaf":"0","children":[{"level":"1","prientNode":"10000440","thisNode":"10000480","isLeaf":"1","children":[]},{"level":"1","prientNode":"10000441","thisNode":"10000480","isLeaf":"0","children":[{"level":"2","prientNode":"100660","thisNode":"10000441","isLeaf":"1","children":[]}]}]}];
getNodes(data);
console.log(nodes);
问题是你要得到什么样的东西,遍历还不简单,递归下children就好了
var s = '[{"thisNode":"10000480","prientNode":"10000480","level":"0","isLeaf":"0","children":[{"level":"1","prientNode":"10000440","thisNode":"10000480","isLeaf":"1","children":[]},{"level":"1","prientNode":"10000441","thisNode":"10000480","isLeaf":"0","children":[{"level":"2","prientNode":"100660","thisNode":"10000441","isLeaf":"1","children":[]}]}]}]';
function getChildrenStr(node) {
var r = '', children = node.children;
if (children && children.length > 0) {
var level = parseInt(children[0].level, 10), preBlank = ' '.substr(0, level);
for (var i = 0; i < children.length; i++) {
r += '<br>' + preBlank + children[i].prientNode + getChildrenStr(children[i]);
}
}
return r;
}
var o = eval('(' + s + ')');//转为json对象
var r = '';
for (var i = 0; i < o.length; i++) {
r += '<br>' + o[i].prientNode + getChildrenStr(o[i]);
}
document.write(r);