0

我有一个 JSON 数组,其中一个对象由节点和链接组成。

data = [Object]=[ { nodes: Array[..] ,links: Array[…] } ]

这一切都很好,但是例如要访问链接,我必须使用 data[0].links,这有点烦人。我希望数组成为一个对象,以便 data.links 可以访问链接。我试图设置:

data = data[0];

但是随后对象数组 data.links 显示为“未定义”。似乎在访问特定元素时会显示该值,例如data.links[3].name。这是为什么?

编辑:

进一步来说:

如果数据 = [ { 节点:数组 [...] ,链接:数组 [...] } ] =>

console.log(data[0].links); //shows the data[0].links[0].name = value in the console

如果数据 = { 节点:数组 [...] ,链接:数组 [...] } =>

console.log(data.links); //shows data[0].links[0].name = undefined

但有趣的是

console.log(data.links[0].name); //shows the correct value.
4

1 回答 1

1

几个解决方案:

[]如果您控制 JSON 输出,只需删除那些基本上将您的对象包装在数组中的括号。

data = { nodes: [...] ,links: [...] };

如果您不控制 JSON,只需将数组的零索引分配给您实际要使用的变量。

json = [ { nodes: [...] ,links: [...] } ];
data = json[0];

不幸的是,“链接”是一个数组。要访问该数组的成员,您需要访问其索引值。

于 2012-11-02T21:15:47.837 回答