我正在尝试构建一个Web项目,我以JSON格式获取详细信息,例如:
{
"file_id": 333,
"t": "2016-03-08 12:00:56"
}
我试图在d3 js条形图中显示输出。我面临的问题是我得到的代码是为JSON文件而不是从JSON反序列化的对象。任何人都可以帮我解决这个问题吗?
JSON文件的工作脚本部分是:
d3.json("FILENAME", function(error, data) {
data = JSON.parse(data);
x.domain(data.map(function(d) { return d.letter }));
y.domain([0, d3.max(data, function(d) { return d.frequency })]);
如果我将文件名更改为对象,则无效。
答案 0 :(得分:18)
作为JS库D3只使用JS对象(以及其他JS数据类型),d3.json
只是从外部文件加载对象的方法。因此,如果您不需要从外部文件加载数据,则不要使用d3.json
//d3.json("FILENAME", function(error, data) {
//data = JSON.parse(data);
var data = {
"file_id": 333,
"t": "2016-03-08 12:00:56"
}; //your own object
x.domain(data.map(function(d) { return d.file_id}));
y.domain([0, d3.max(data, function(d) { return d.t})]);
希望有所帮助
答案 1 :(得分:0)
如果我将文件名更改为对象,则无效。
然后你应该在一个函数中调用它并传递params中的对象:
var obj = {}; // the object to be be passed for chart
function updateGraph(o){ // get in the params here
var x = d3.scale.ordinal().rangeRoundBands([0, width]),
y = d3.scale.linear().range([height, 0]);
x.domain(o.letter);
y.domain([0, o.frequency]);
}
updateGraph(obj); // <----pass it here