繁体   English   中英

如何使用 D3 javascript 迭代 JSON 文件中的数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM