将对象添加到现有对象中

时间:2015-06-07 16:58:43

标签: javascript json object d3.js

我需要使用d3.json函数加载外部JSON文件,例如。有这种格式

{"pole":[{"name": "p1"}, {"name":"p2"}]}

在主文件中,我会

var MainData ={}; d3.json("url", function(graph){MainData[graph] = graph;});

给了我在MainData中推送的外部JSON对象。但我会谎称能够以MainData.pole

的形式访问它

此外,我想加载多个JSON文件并将它们推送到同一个MainData文件中。

我是JS的新手,我非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

var MainData ={}; d3.json("url", function(graph){MainData[graph] = graph;});
     

给了我在MainData中推送的外部JSON对象。

嗯,有点,但它有一个真的尴尬的属性名称,很可能是[object Object],因为当你使用这样的括号表示法时,属性名称是括号是作为字符串(现在; ES6添加Symbol s),所以你放在那里的任何非字符串都会变成一个字符串。在普通对象上调用toString的默认结果是[object Object]

  

但我会撒谎以便能够以MainData.pole

的形式访问它

假设d3.json在给你之前为你解析它,那么:

var MainData ={};
d3.json("url", function(graph) { 
    MainData.pole = graph.pole;
});

如果您希望自己解析(似乎不太可能),那么:

var MainData ={};
d3.json("url", function(graph) { 
    MainData.pole = JSON.parse(graph).pole;
});