gpt4 book ai didi

asp.net-mvc - ASP.NET MVC JsonResult 和 JQuery flot

转载 作者:行者123 更新时间:2023-12-01 21:17:18 26 4
gpt4 key购买 nike

我正在尝试使用 jquery flot使用 asp.net mvc 的绘图插件。我正在尝试从 JsonResult 动态提取数据以填充图表。

我的问题是我似乎无法以正确的格式获取从 JsonResult 返回的数据。

这是我的服务器端代码:

public ActionResult JsonValues()
{
IList<IDictionary<string, int>> listofvalues = new List<IDictionary<string, int>>();
IDictionary<string, int> values1 = new Dictionary<string, int>();
values1.Add("2003", 10882);
values1.Add("2002", 10383);
values1.Add("2001", 10020);
values1.Add("2000", 9762);
values1.Add("1999", 9213);
values1.Add("1998", 8720);

IDictionary<string, int> values3 = new Dictionary<string, int>();
values3.Add("2003", 599);
values3.Add("2002", 510);
values3.Add("2001", 479);
values3.Add("2000", 457);
values3.Add("1999", 447);
values3.Add("1998", 414);

listofvalues.Add(values1);
listofvalues.Add(values3);

JsonResult result = new JsonResult { Data = listofvalues };
return result;
}

这是我的客户端代码:

$(function() {
$.getJSON("/path/to/JsonValues", function(data) {
var plotarea = $("#plot_area");
$.plot(plotarea, data);
});
});

请注意,以下客户端代码可以正常工作:

$(function() {
var points = [
[[2003, 10882],
[2002, 10383],
[2001, 10020],
[2000, 9762],
[1999, 9213],
[1998, 8720]],

[[2003, 599],
[2002, 510],
[2001, 479],
[2000, 457],
[1999, 447],
[1998, 414]]
];

var plotarea = $("#plot_area");
$.plot(plotarea, points);
});

鉴于上述工作正常,看来这只是正确格式化返回的 JsonResult 的问题。我怎样才能做到这一点?字典列表是返回的最佳类型,还是应该使用其他类型?或者我应该使用 JavaScript 中的函数来正确格式化数据?

看起来很简单,但我无法完全让它发挥作用。

最佳答案

检查你返回给客户端的Json,它将是带有键值对的Json对象,类似于:

{{'2003':10882,'2002':10383},....}

当你需要一个数组的时候。

[[[2003, 10882],[2002, 10383]],...]

您始终可以自己生成 Json 字符串并返回结果

StringBuilder sb = new StringBuilder();
sb.append("[2003,10882],")
return Json("[" + sb.ToString() + "]");

或者您可以尝试将值存储在数组中,这可能会生成所需的 Json,但我还没有尝试过。

关于asp.net-mvc - ASP.NET MVC JsonResult 和 JQuery flot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com