我有一个JSON数组,其中一个对象由节点和链接组成。
data = [Object]=[ { nodes: Array[..] ,links: Array[…] } ]
这一切都很好,但是为了访问链接,例如我必须使用data [0] .links,这有点烦人。我希望数组成为一个对象,以便data.links可以访问链接。我试图设置:
data = data[0];
然后,Objects,data.links数组显示为“undefined”。看起来当访问特定元素时,会显示该值,例如data.links[3].name
。这是为什么?
编辑:
更具体地说:
如果data = [{nodes:Array [...],links:Array [...]}] =>
console.log(data[0].links); //shows the data[0].links[0].name = value in the console
如果data = {nodes:Array [...],则链接:Array [...]} =>
console.log(data.links); //shows data[0].links[0].name = undefined
但有趣的是
console.log(data.links[0].name); //shows the correct value.
答案 0 :(得分:1)
一些解决方案:
如果您控制JSON输出,只需删除那些基本上将对象包装在数组中的括号[]
。
data = { nodes: [...] ,links: [...] };
如果你不控制JSON,只需简单地将数组的零索引分配给你真正想要使用的变量。
json = [ { nodes: [...] ,links: [...] } ];
data = json[0];
不幸的是,'links'是一个数组。要访问该数组的成员,您需要访问其索引值。