JSON数据格式转换

新手上路,请多包涵

有如下结构数据

clipboard.png
links里 source, target 的0 代表node1 以此类推
如何转换为
clipboard.png
根据links里边有的关系转换为dataNew的嵌套关系
source 是父节点 target是子结点,可能有多层嵌套关系

阅读 3.1k
2 个回答

写个递归,循环遍历!

Code:

function getRelationship(data) {
  var retData = new Array();
  for (var i in data.node) {
    var dataItem = {
      name: data.node[i].name,
      children: []
    };
    for (var j in data.link) {
      if (data.link[j].source == i) {
        var nodeName = data.node[data.link[j].target].name;
        dataItem.children.push({
          name: nodeName
        }); 
      }
    }
    retData.push(dataItem);
  }

  return retData;
}

var ret = getRelationship(data);

Result:

[ { name: 'node1', children: [ [Object], [Object] ] },
  { name: 'node2', children: [] },
  { name: 'node3', children: [] } ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题