如何将javascript对象转换为新对象?

时间:2016-06-01 09:28:11

标签: javascript json d3.js

我需要将一些外部json数据导入变量或单个json文件,然后用D3显示该数据。

这是我需要从每个json文件导入的数据格式:

    {
      "name": "name1",
      "version": "0.1.2",

      "references": [
        {
          "url1": "http://example1.com"
        },
        {
          "url2": "http://example2.com"
        }
      ]
    }

这是我最终的json文件/变量所需的数据格式。

    {
      "nodes":[
        {
          "name": "name1",
          "version": "0.1.2",
          "references": [
            {
              "url1": "http://example1.com"
            },
            {
              "url2": "http://example2.com""
            }
          ]
        },

        {
          "name": "name2",
          "version": "1.6.0",
          "references": [
            {
              "url1": "http://example34.com"
            },
            {
              "url2": "http://example30.com""
            }
          ]
        },
        {
          ...
          ...
        }
      ],
      "links":[
      ]
    }

基本上我需要合并“nodes”数组中不同json文件的数据。

知道我怎么能这样做? 感谢

2 个答案:

答案 0 :(得分:2)

nodes是一个简单的数组,因此您只需按下“文件”即可。对象进入nodes数组。



var file1 = {
    "name": "name1",
    "version": "0.1.2",
    "references": [
        {
            "url1": "http://example1.com"
        },
        {
            "url2": "http://example2.com"
        }
    ]
}

var file2 = {
    "name": "name1",
    "version": "0.1.2",
    "references": [
        {
            "url1": "http://example1.com"
        },
        {
            "url2": "http://example2.com"
        }
    ]
}

var files = [file1, file2];

var node = {
    "nodes": [],
    "links": []
}

files.forEach(function(file) {
    node.nodes.push(file);
})

console.log(node);




答案 1 :(得分:0)

如果您只需将导入的JSON中的所有数据都推送到nodes,则可以执行以下操作:

var imported =  {
    "name": "name1",
    "version": "0.1.2",
    "references": [
        {
            "url1": "http://example1.com"
        },
        {
            "url2": "http://example2.com"
        }
    ]
};

var finalJson = {
    nodes: []
};

finalJson.nodes.push(imported);

这是小提琴:https://jsfiddle.net/vj1nqeu5/1/