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

http://jsfiddle.net/m5dfmf5r/5/