2015-08-20 80 views
0

我試圖使用Chart.js來使用動態生成的數據生成餅圖。我無法以正確的格式獲取數據,我認爲我很接近,但我一直陷入困境。將JSON數據解析爲chart.js的特定格式

我使用Ajax獲得這樣的JSON數據:

$.ajax({ 
    url: '../helpdesk/getTicketsPerSubcat/' + startDate + '/' + endDate + '/' + activeLabel, 
    dataType: 'JSON', 
    success: function(result){ 
     var pieData = new Array(); 

     // populate array 
     for (i in result) { 
      var foo = {value: result[i].total, label: result[i].subcategory} 
      var jsonString = JSON.stringify(foo); 
      pieData.push(jsonString); 
     } 
     console.log(pieData); 
    } 
}); 

將返回:

["{"value":"2","label":"Disk Space"}", "{"value":"1","label":"Performance Issue"}"] 

這就是文檔說什麼數據需要看起來像:

var data = [ 
    { 
     value: 300, 
     label: "Red" 
    }, 
    { 
     value: 50, 
     label: "Green" 
    }, 
    { 
     value: 100, 
     label: "Yellow" 
    } 
] 

我似乎在方括號內有那些額外的引號,這些引號必須是導致錯誤的原因(Uncaught TypeError: Cannot read property 'length' of undefined)。是JSON.stringify()錯誤的功能被使用?任何幫助將非常感謝!

+0

不要'JSON.stringify'的對象,你要善於去。 –

回答

1

JSON.stringify()錯誤的功能被使用?

是因爲有效的JSON被轉換成JSON字符串。

,而不是僅僅把你想有數組中的對象:

for (i in result) { 
    var foo = {value: result[i].total, label: result[i].subcategory} 
    pieData.push(foo); 
}