3

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

休息服务器返回一个 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();
4

2 回答 2

0

我的解决方案是将“系列:json.data”替换为“系列:json”,请参见下文:

var graph = new Rickshaw.Graph( {
    element: document.getElementById("chart"),
    renderer: 'line',
    height: 200,
    width: 400,
    series: json.data
} );
于 2014-10-01T05:53:10.687 回答
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();

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

于 2015-04-24T20:28:13.767 回答