2013-03-09 45 views
0

我已搜索和搜索,但我無法找到解決方案。解析json數據至高圖

我想從我的服務器用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 
}] 

這是我highchart:(從我的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

你非常接近。該系列陣列需要包含的對象與數據成員:

series: [ 
    { 
     data:[] 
    } 
] 

可以使用然後將其設置:

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

我修改您的jsfiddle:http://jsfiddle.net/dxCHB/

格式的日期數字

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

打了我像5秒,哈哈。 – MatthewKremer 2013-03-09 13:39:50

+0

大聲笑。我在高層問題上見過你。你已經發布了一些很好的答案。 – SteveP 2013-03-09 13:51:28

+0

謝謝@SteveP。我每天都會在自己的工作中使用HighCharts,如果可能的話,我可能會開始幫助人們。我絕對不是主人,但我嘗試。 – MatthewKremer 2013-03-09 14:10:28

0

你的數據應該是數字,所以你可以使用parseFloat( )函數將字符串轉換爲數字。