search

Home  >  Q&A  >  body text

javascript - JSON数据格式转换

有如下结构数据


links里 source, target 的0 代表node1 以此类推
如何转换为

根据links里边有的关系转换为dataNew的嵌套关系
source 是父节点 target是子结点,可能有多层嵌套关系

大家讲道理大家讲道理2816 days ago694

reply all(2)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-11 13:19:06

    写个递归,循环遍历!

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 13:19:06

    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: [] } ]

    reply
    0
  • Cancelreply