未捕获的异常:系列不是阵列人力车

时间:2014-04-22 17:47:32

标签: jquery ajax json rickshaw

我用人力车的例子尝试了一个简单的例子......

休息服务器返回一个json文件...... 如果我将它打印到控制台,它与示例中的相同:

[{
        color: 'steelblue',
        data: [ 
            { x: 0, y: 40 }, 
            { x: 1, y: 49 }, 
            { x: 2, y: 38 }, 
            { x: 3, y: 30 }, 
            { x: 4, y: 32 } ]
        }]

但不知怎的,我总是得到错误"未捕获的异常:系列不是数组:[object Object]"

这是我的剧本:

var json = $.ajax({
    'url': "http://127.0.0.1:8887/getMetricsJson/metricName/water_in/earliest/1398037036/latest/1398039416",
    'success': function(json) {
        console.log(json);
    }
});


var graph = new Rickshaw.Graph( {
    element: document.getElementById("chart"),
    renderer: 'line',
    height: 200,
    width: 400,
    series: json
} );
graph.render();

2 个答案:

答案 0 :(得分:0)

我的解决方案是将“series:json.data”替换为“series:json”,请参阅下文中的上下文:

var graph = new Rickshaw.Graph( {
    element: document.getElementById("chart"),
    renderer: 'line',
    height: 200,
    width: 400,
    series: json.data
} );

答案 1 :(得分:0)

我认为你需要解析JSON字符串。我正在使用XMLHttpRequest而不是ajax,但这为我解决了这个问题。

这应该有效:

var json = $.ajax({
    'url': "http://127.0.0.1:8887/getMetricsJson/metricName/water_in/earliest/1398037036/latest/1398039416",
    'success': function(json) {
        console.log(json);
    }
});


var graph = new Rickshaw.Graph( {
    element: document.getElementById("chart"),
    renderer: 'line',
    height: 200,
    width: 400,
    series: JSON.parse(json)
} );
graph.render();

希望这有助于某人,因为这是一个非常古老的问题。我无法在其他任何地方找到答案,当您搜索该错误时会弹出此问题。