使用具有相同键的JSON数据(在D3中)

时间:2017-08-19 21:39:25

标签: javascript json d3.js

我在这个网站here找到了一个包含历史事件的JSON文件:

该文件的结构如下:

{ result:
    {
        count: "37859",
        event: {},
        event: {},
        ...
        event: {}
    }
}

如您所见,包含特定事件数据的每个对象都存储在自己的对象中,但所有对象都具有相同的键," event"。因此,d3.json()方法的结果只是最后一个"事件"宾语。我怎样才能得到所有这些"事件"对象

很抱歉,如果我使用"对象"以错误的方式,它们在浏览器控制台中表示为对象,我不知道如何用英语描述它们。

1 个答案:

答案 0 :(得分:0)

他们提供给您的文件不是有效的JSON,因此无法使用d3.json()并使其正常工作。

我认为你有两种选择:

  • 与提供商交谈并让他们正确格式化文件。
  • 将文件作为文本而不是JSON加载,使用string.replace将结构重新格式化为事件数组,而不是该对象上名为event的字段集合。

这样的事情:

{
    result:
    {
        count: "37859",
        events: [
            { ...event1... },
            { ...event2... },
            { ...event3... }
        ]
    }
}

更简单的选择可能是使用"event""event-1"等唯一版本替换每个字符串"event-2"