Json数据:
[{"specialty":"Anesthesiology","median":276000 },
{"specialty":"Cardiology: Electrophysiology","median":359622 },
{"specialty":"Cardiology: Inv-Intvl","median":400000 },
{"specialty":"Cardiology: Noninvasive","median":256250 },
{"specialty":"Dermatology","median":358750 }]
Type1:此代码有效。
d3.json("income.json", function(d){
d3.select("body").selectAll("p").data(d).enter().append("p").text("123");
});
Type2:但这段代码不起作用。错误信息是" 未捕获的TypeError:无法读取属性'长度'未定义的"
var mydata;
d3.json("income.json", function(d){mydata = d;});
d3.select("body").selectAll("p").data(mydata).enter().append("p").text("123");
答案 0 :(得分:1)
这是因为以下调用是异步运行的,并且在您尝试使用它时未完成解析数据。因此你的变量'mydata'是未定义的。
d3.json("income.json", function(d){mydata = d;});
你应该使用'Type 1',因为它将赋值放入d3.json函数的回调中,并在数据可用后填充它
希望这有帮助。