2013-08-22 49 views
2

我已經遍尋搜索,但無法將JSON數據綁定到我生活中的簡單散點圖。我看過帖子和示例,但我只能設法綁定數組而不是JSON。下面,我試圖簡單地將JSON數據顯示爲文本,但仍無法使其工作。請讓我知道,如果你有任何想法,爲什麼!無法將JSON綁定到d3

d3_attempt.js

var data; 

d3.json("json_data.json",function(error, dataset) { 
    if (error) return console.warn(error); 

    data = dataset; 

    var myscatter = d3.select("#somediv").append("svg") 
        .attr("width", 700) 
        .attr("height", 400); 

    myscatter.selectAll("text") 
     .data(data.data) 
     .enter() 
     .append("text") 
     .text(function(d){return d)}) 
}); 

json_data.json

{ 
    "data": 
    { 
     "john": {"name": "john", "age": "13"}, 
     "matt": {"name": "matt", "age":"14"} 
    } 
} 

回答

2

是的,你只能綁定數組,所以你可能希望將數據轉換爲數組:

myscatter.selectAll("text") 
    .data(d3.values(data.data)); 

這會爲您的每個text節點提供{ name, age }對象作爲數據。如果您也需要密鑰(看起來在這種情況下不需要),您可以使用d3.entries,它可以爲您提供一組對象,如{ key: "john", value: { name: "John", age: "13" }}

+0

我不知道。感謝你 - 這是有效的! – user2245942