2014-01-13 157 views
1

JSON序列數據,我有以下Highcharts樣品,我在小提琴所做爲基礎的什麼我想用MVC和JSON做的事:Fiddle Link to ExampleHighcharts - 顯示不正確

enter image description here

我想使用JSON在MVC中重新創建它。這是我的代碼的結果:

enter image description here

這肯定是不對的,因爲它只是顯示了數組的第一個值,而不是顯示的其餘部分。

這是我正在創建的數組:

Dictionary<string, double[]> columnData = new Dictionary<string, double[]>(); 
    double[] Array1 = { 49.9, 71.5, 106.4, 129.2 }; 
    columnData.Add("IE", Array1); 

    double[] Array2 = { 83.6, 165, 45, 97.2}; 
    columnData.Add("FireFox", Array2); 

    double[] Array3 = { 92, 125, 32, 83.5 }; 
    columnData.Add("Chrome", Array3); 

    double[] Array4 = { 42.4, 54.2, 55.3, 54.3 }; 
    columnData.Add("Opera", Array4); 

    return Json(columnData.ToArray(), JsonRequestBehavior.AllowGet); 

我認爲數據設置正確,問題是在JavaScript代碼來推動數據。

jQuery.getJSON("GetColumnChartData", null, function (items) { 
    var series = { 
        type: 'column', 
        data: [] 
       }; 

jQuery.each(items, function (itemNo, item) { 
       series.data.push([item.Key, parseFloat(item.Value)]) 
       }); 

options.series.push(series); 

我想我需要通過返回的「項目」來獲取其他系列數據。 我處於大腦放屁,認爲有人可能能夠看到它,並在幾分鐘內知道問題是什麼,而不是我已經嘗試解決這個問題的時間。 做完這些之後,我必須更改硬編碼類別(即「教育」,「非營利」,「商業」,「個人」)以動態構建。但那是在我修好之後。

感謝您抽出寶貴時間。

+0

你的json是怎麼樣的? –

+0

json看起來不正確。基本上它只取第一個值並顯示。我不完全確定,但我想我可能需要遍歷double []數組,並推送這些值。 我有這種不好的感覺,這是直截了當的,我沒有想到,應該是相當直接 –

+0

所以,讓我知道如果任何json將被生產,我們會看到;) –

回答

0

假設你的數據看起來是這樣的:

var items = [ 
    { 
     name : 'Firefox', 
     values : [x, x, x, x] 
    }, 
... 
] 

jQuery.getJSON("GetColumnChartData", null, function (items) { 
    var series = []; 
//you could use series = items.map(function(item){...}); 
jQuery.each(items, function (item) { 
    series.push({ 
     name : item.name, 
     data : item.values 
    }); 
}); 
options.series = series; 
}); 

我希望幫助。