我在Fiddle中做了以下Highcharts示例,作为我想要使用MVC和JSON做的基础:Fiddle Link to Example
我想使用JSON在MVC中重新创建它。这是我的代码的结果:
这绝对是错误的,因为它只显示数组的第一个值而不显示其余值。
这就是我构建数组的方式:
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);
我想我需要遍历返回的“item”以获取其他系列数据。 我在大脑中放屁并且认为有人可能能够在几分钟内看到它并且知道问题是什么,而不是我已经花了一些时间来解决这个问题。 完成此操作后,我将不得不动态修改硬代码类别(即“教育”,“非营利”,“业务”,“个人”)。但那是在我解决这个问题之后。
感谢您花时间去看。
答案 0 :(得分: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;
});
我希望有所帮助。