[英]Using own JSON data in D3
我正在关注这个d3.js
示例。
本例中的数据是一个csv
文件,结构如下:
姓名 | 代码 | 流行音乐 |
---|---|---|
阿尔巴尼亚 | ALB | 3153731 |
美国 | 美国 | 299846449 |
大不列颠 | GBR | 60244834 |
数据以这种方式加载:
.defer(d3.csv, "https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world_population.csv", function(d) { data.set(d.code, +d.pop); })
现在我正在尝试使用我自己修改的 JSON 格式的数据。
test.json
[{
"name": "Albania",
"code": "ALB",
"pop": "0.111"
},
{
"name": "United States",
"code": "USA",
"pop": "0.222"
},
{
"name": "Great Britain",
"code": "GBR",
"pop": "0.333"
}
]
为此,我只加载我的数据而不是虚拟数据:
var test = "test.json"
.defer(d3.json, test , function(d) { data.set(d.code, +d.pop);})
如果我console.log
csv
和json
,生成的对象看起来完全一样。 但是使用json
没有加载 map 并且使用csv
加载了 Z1D78DC8ED51214E518B5114AE24490。
当我console.log
csv
数据时,如下所示:
.defer(d3.csv, "https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world_population.csv", function(d) { console.log("DATA : " , d.code)
data.set(d.code, +d.pop);})
我在控制台的code
列中看到了值。
如果我对json
做同样的事情:
.defer(d3.json, test, function(d) { console.log("DATA : " , d.code)
data.set(d.code, +d.pop);})
控制台中不显示任何内容。
所以我的问题是,为什么我可以使用d.code
和d.pop
访问csv
中的值,但不能访问json
中的值?
我发现我做错了什么。
我不能使用这部分:
defer(d3.json, test, function(d) { console.log("DATA : " , d.code)
data.set(d.code, +d.pop);})
因为我不能将一行 function 与d3.json
一起使用。
此问题中的更多信息
似乎defer(d3.json, test, function(d) {
d
的 d 是一个数组。
尝试以下操作:
.defer(d3.json, test , function(d) {
d.forEach(({code, pop}) => data.set(code, +pop));
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.