json 数据未呈现
json data not rendering
我是 D3js 的新手,在使用 json 文件时遇到问题。这个问题让我很困惑。我在以下位置发布了一个示例:
http://jsfiddle.net/tommy6s/m5dfmf5r/
我一直在控制台中工作,并尝试了以下以及我能想到的所有其他组合:
console.log(data) //returns data
console.log(data.value); //returns undefined
console.log(d.value); //returns d is not defined
console.log(data[0].value); //returns 67.53 first single value
我也收到控制台错误:TypeError: string.slice is not a function
var n = d3_time_numberRe.exec(string.slice(i, i + 4));
d.data 数组中的一个元素具有以下结构:
["2015-02-28", 67.53, 68.67, 67.05, 67.68, 0.0, 67.68 ]
我不确定为什么这不是 JSON 对象(带有字段值对),但为了访问它,您需要执行以下操作:
function(error, d) {
var data = d.data;
data.forEach(function(d) {
var date = parseDate(d[0]);
var open = d[1];
var high = d[2];
..
var close= d[6];
});
}
看起来您返回的日期几乎都是空的。
在您的示例中执行以下操作作为对此的测试:
data.forEach(function(d) {
console.log(d);
d.date = parseDate(d.date);
d.value = +d.value;
});
你会发现在尝试一个之后它失败了。 d.date 中的每个日期均为空。导致 parseDate 函数失败。
在你的类型函数中,我将其更改为使用 javascript 新日期来转换它,并删除了 forEach 循环中对 parseDate 的第二次调用以修复该问题。
function type(d) {
var obj = {};
console.log(d);
obj.date = new Date(d[0]); //Use the javascript date object is perhaps better?
obj.value = d[1];
return obj;
}
我是 D3js 的新手,在使用 json 文件时遇到问题。这个问题让我很困惑。我在以下位置发布了一个示例:
http://jsfiddle.net/tommy6s/m5dfmf5r/
我一直在控制台中工作,并尝试了以下以及我能想到的所有其他组合:
console.log(data) //returns data
console.log(data.value); //returns undefined
console.log(d.value); //returns d is not defined
console.log(data[0].value); //returns 67.53 first single value
我也收到控制台错误:TypeError: string.slice is not a function
var n = d3_time_numberRe.exec(string.slice(i, i + 4));
d.data 数组中的一个元素具有以下结构:
["2015-02-28", 67.53, 68.67, 67.05, 67.68, 0.0, 67.68 ]
我不确定为什么这不是 JSON 对象(带有字段值对),但为了访问它,您需要执行以下操作:
function(error, d) {
var data = d.data;
data.forEach(function(d) {
var date = parseDate(d[0]);
var open = d[1];
var high = d[2];
..
var close= d[6];
});
}
看起来您返回的日期几乎都是空的。
在您的示例中执行以下操作作为对此的测试:
data.forEach(function(d) {
console.log(d);
d.date = parseDate(d.date);
d.value = +d.value;
});
你会发现在尝试一个之后它失败了。 d.date 中的每个日期均为空。导致 parseDate 函数失败。
在你的类型函数中,我将其更改为使用 javascript 新日期来转换它,并删除了 forEach 循环中对 parseDate 的第二次调用以修复该问题。
function type(d) {
var obj = {};
console.log(d);
obj.date = new Date(d[0]); //Use the javascript date object is perhaps better?
obj.value = d[1];
return obj;
}