2016-05-31 45 views
1

http://bl.ocks.org/robschmuecker/7880033与CSV更换JSON文件d3js

我是新来的JavaScript和d3。上面的例子是树状图。我可以创建自己的。但是,如果我想将它用于员工数据之类的东西,似乎总是需要编辑json,除非我错过了一些更简单的技巧,这将是一件痛苦的事情。

excel中的csv,我在其他图表中使用,看起来会很好。是否有可能用csv替换flare.json与数据?如果是这样,怎么样?

回答

2

不,不可能直接。要知道原因,您必须了解功能d3.csv创建数组的方式。假设你有这个CSV文件:

foo, bar, baz 
21, 33, 5 
1, 14, 42 

分析时,它将生成一个单一的对象数组,没有嵌套数组或嵌套对象。第一行定义键名称,其他行定义值。这是该CSV产生的数组:

[ 
    {"foo": 21, "bar": 33, "baz": 5}, 
    {"foo": 1, "bar": 14, "baz": 42} 
] 

或者,如果你不为字符串更改类型,编号为:

[ 
    {"foo": "21", "bar": "33", "baz": "5"}, 
    {"foo": "1", "bar": "14", "baz": "42"} 
] 

你不会得到任何接近你想要什么,它是一个包含数组的对象数组,包含数组等对象...

您可以稍后修改此数组以创建您需要的嵌套的子项(请看下面的@torresomar注释),但它更容易编辑你的JSON。

+0

或者编写一个简单的程序将一种文件格式转换为另一种文件格式。如果你需要转换大量文件,结果可能会更快。 – RichS

+1

是啊@GerardoFurtado是对的,我试图给出一个分层的方法来处理CSV,但它会非常麻烦,因为CSV不是一种简单的方式允许您的层次结构的格式。如果你仍然想延长CSV使用率,你可能想检查一下http://stackoverflow.com/questions/19043561/csv-data-to-nested-json-tree-in-d3,但我不推荐它。 – torresomar

+0

这些都是很好的回应。非常感谢你的帮助。 – Nick