[英]How to return a multidimensional array as JSON for jqPlot chart in ASP.NET MVC C#
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类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.