data.key未定义:如何解析json数据

时间:2015-06-18 21:44:25

标签: javascript json d3.js

我想绘制与城市大小成比例的矩形。但我一直坚持解析数据。我可以取出数据的键,但是当我通过data.key使用键时,它给了我" undefined"。我认为问题在于密钥是字符串,因为data.Amsterdam运行正常。我该如何解决这个问题?

var current = "Amsterdam"

var g = d3.select("body")
    .append("svg:svg")
    .attr("width", 1000)
    .attr("height", 1000)
    .append("svg:g");

d3.json("data_2014.json", function (error, data) {
    for (var key in data) {
        console.log(data.key)
        g.append("rect")
            .attr("width", data.key.a_opp_ha/100)
            .attr("height", data.key.a_opp_ha/100)
            .attr("x", 0)
            .attr("y", 0)
            .attr("fill", function (ding) {
                if (key === current) {
                    return "blue";
                } else {
                    return "none"};
                }
            })
            .attr("stroke", "teal");
    }
})

示例数据:

{
  "'s-Gravenhage": { "a_opp_ha": "9811", "a_pau": "178360", "ste_oad": "4755" },
  "Amsterdam": { "a_opp_ha": "21949", "a_pau": "230675", "ste_oad": "6096" }
}

1 个答案:

答案 0 :(得分:2)

您应该使用data[key]表达式而不是data.key