将json数据解析为highcharts

时间:2013-03-09 13:17:50

标签: json parsing highcharts linechart

我已经搜索过并搜索过,但我还是找不到解决方案。

我正在尝试使用服务器中的json将数据加载到Highcharts中。 这是从我的服务器返回的json:

   [{
    "x": "\/Date(1352674800000)\/",
        "y": 621
}, {
    "x": "\/Date(1352761200000)\/",
        "y": 646
}, {
    "x": "\/Date(1352847600000)\/",
        "y": 690
}, {
    "x": "\/Date(1352934000000)\/",
        "y": 688
}, {
    "x": "\/Date(1353020400000)\/",
        "y": 499
}]

这是我的高潮:(来自我的jsfiddle)

    var seriesData = [];
for (var i = 0; i < data.length; i++) {
   var dateString = data[i].x;
var x = dateString.replace(/\/Date\((\d+)\)\//, '$1');


    var y = data[i].y;


    seriesData.push([x, y]);

}
alert(seriesData);

var options = {
    chart: {
        renderTo: 'container'
    },
    xAxis: {        
        type: 'datetime',
        labels: {
            formatter: function() {
            var monthStr = Highcharts.dateFormat('%a', this.value);
            var firstLetter = monthStr.substring(0, 1);
            return firstLetter;
            }
        }
    },



    series: []
};

function myfunk() {
   options.series.push(seriesData);



    chart = new Highcharts.Chart(options);
}
myfunk();

但我的数据没有显示。

我做了一个jsfiddel:http://jsfiddle.net/grVFk/12105/

编辑:

现在它正在运行,但显示错误日期的数据点? http://jsfiddle.net/dxCHB/18/

如果有人能帮助我,我将非常感激! :)

2 个答案:

答案 0 :(得分:2)

你非常接近。系列数组需要包含一个带有数据成员的对象:

 series: [
    {
       data:[]
    }
 ]

然后您可以使用以下方式进行设置:

function myfunk() {
    options.series[0].data = seriesData;

我修改了你的jsfiddle:http://jsfiddle.net/dxCHB/

以数字格式设置日期

seriesData.push([x/1, y]);

答案 1 :(得分:0)

您的数据应该是数字,因此您可以使用parseFloat()函数将字符串转换为数字。