我已经搜索过并搜索过,但我还是找不到解决方案。
我正在尝试使用服务器中的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/
如果有人能帮助我,我将非常感激! :)
答案 0 :(得分:2)
你非常接近。系列数组需要包含一个带有数据成员的对象:
series: [
{
data:[]
}
]
然后您可以使用以下方式进行设置:
function myfunk() {
options.series[0].data = seriesData;
我修改了你的jsfiddle:http://jsfiddle.net/dxCHB/
以数字格式设置日期
seriesData.push([x/1, y]);
答案 1 :(得分:0)
您的数据应该是数字,因此您可以使用parseFloat()函数将字符串转换为数字。