如何返回一个多维数组JSON的jqPlot图表在ASP.Net MVC c#
本文关键字:jqPlot ASP MVC Net JSON 返回 何返回 一个 数组 | 更新日期: 2023-09-27 18:04:14
json需要是这样的格式:
var data = [
['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14],
['Out of home', 16],['Commuting', 7], ['Orientation', 9]
];
但是在我的动作方法中,我不知道如何构建json以该格式呈现。以下是我的文件:
var json = new[] {
new[] {"Pending", summaryData.Sum(a => (int)a.Pending).ToString() },
new[] {"Completed", summaryData.Sum(a => (int)a.Completed).ToString()}
};
return Json(json, JsonRequestBehavior.AllowGet);
返回以下JSON:
[["Pending","146"],["Completed","914"]]
这很接近,除了它们的数值周围是引号,jqPlot似乎不喜欢它。不幸的是,如果我试图做一个Int32.Parse(…)对它,我得到一个异常。
有什么好主意吗?
谢谢
我猜当你尝试使用Int32.parse
时,你得到的错误是"没有为隐式类型数组找到最佳类型"。当使用隐式类型数组且该数组中的值类型不同时,编译器不知道该为该数组推断何种类型。
你可以通过告诉编译器数组的类型来解决这个错误:
var json = new[] {
new object[] {"Pending", summaryData.Sum(a => (int)a.Pending) },
new object[] {"Completed", summaryData.Sum(a => (int)a.Completed) }
};
这个应该按照你想要的方式序列化数组。
对于jqPlot,数字周围的引号引起了一个问题,因为插件很可能要求数组中的第二项为number类型。