2015-06-18 36 views
2

我想繪製與城市大小成比例的矩形。但我一直在解析數據。我可以取出數據的密鑰,但是當我通過data.key使用密鑰時,它會給我「未定義」。我認爲問題在於密鑰是字符串,因爲data.Amsterdam工作正常。我怎麼解決這個問題?data.key未定義:如何解析json數據

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" } 
} 

回答

2

,您應該使用data[key]表達,而不是data.key