[英]How to iterate over data in JSON file using D3 javascript
我正在尝试使用 D3 Javascript 迭代并从 JSON 文件中检索一些数据。
这是 JSON 文件:
{
"Resources":
[
{
"subject": "Node 1",
"group" : "1"
},
{
"predicate": "Node 2",
"group" : "2"
},
{
"object": "Node 3",
"group" : "3"
},
{
"subject": "Node 4",
"group" : "4"
},
{
"predicate": "Node 5",
"group" : "5"
},
{
"object": "Node 6",
"group" : "6"
}
]
}
这是我在 D3 Javascript 中用于迭代和检索数据的代码:
d3.json("folder/sample.json", function(error, graph) {
document.write(graph.Resources[0].subject);
// The code for retrieving all the elements from the JSON file
});
上面的代码检索第一个主题,即: Node 1
。 我什至无法检索该group
。
任何人都可以帮我遍历 JSON 文件Resources
并检索元素: subject, predicate, object and group
,使用任何类型的迭代,例如for
循环。
JSON 文件中的组行应类似于"group" : "2"
。 此外,您的 JSON 包含一个对象( Resources
); 这就是为什么你的document.write
只被调用一次。 您需要遍历Resources
的值:
d3.json("test.json", function(error, graph) {
var resources = graph.Resources;
for (var i = 0; i < resources.length; i++) {
var obj = resources[i]
for (var key in obj) {
console.log(key+"="+obj[key]);
}
}
});
会得到你
subject=Node 1
group=1
...
我想总结一下我在几个问题的评论中已经写过的内容。
由于发布的 JSON 文件无效,因此无法对其进行迭代。 原始 JSON 文件:
{
"Resources":
[
{
"subject": "Node 1",
"group" = "1"
},
...
{
"object": "Node 6",
"group" = "6"
}
]
}
包含属性group = "x"
每一行都是错误的。 它应该是group : "x"
。
那些错误/错别字很容易被忽视。 他们可以找到使用适当的工具(如JSON 验证器)检查 JSON 文件的方法。 在这种情况下 JSONLint 工具报告:
Parse error on line 5:
... "group"="1" } ]
----------------------^
Expecting '}', ':', ',', ']'
固定文件格式后,可以使用任何循环轻松完成迭代:变量graph
包含对象资源,这是一个对象数组。 它们中的每一个都包含公共属性group
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.