Jquery 在ASP.NET MVC中将对象列表转换为Json
我正在使用ASP.NETMVC4 这是来自Jqplot的示例数据Jquery 在ASP.NET MVC中将对象列表转换为Json,jquery,asp.net-mvc,json,asp.net-mvc-4,Jquery,Asp.net Mvc,Json,Asp.net Mvc 4,我正在使用ASP.NETMVC4 这是来自Jqplot的示例数据 var line1=[[2008-06-30 8:00AM',4],'2008-7-30 8:00AM',6.5],'2008-8-30 8:00AM',5.7],'2008-9-30 8:00AM',9],'2008-10-30 8:00AM',8.2] 该对中的第一个值是DateTime,另一个值是value 现在,我正试图像这样从控制器中获取值,我使用的是webapicontroller 我的行动如下 public List
var line1=[[2008-06-30 8:00AM',4],'2008-7-30 8:00AM',6.5],'2008-8-30 8:00AM',5.7],'2008-9-30 8:00AM',9],'2008-10-30 8:00AM',8.2]代码>
该对中的第一个值是DateTime,另一个值是value
现在,我正试图像这样从控制器中获取值,我使用的是webapicontroller
我的行动如下
public List<Stats> GetGraphData()
{
var stats = new List<Stats>
{
new Stats {Date = DateTime.Now, Value = 4},
new Stats {Date = DateTime.Now.AddMonths(1), Value = 11},
new Stats {Date = DateTime.Now.AddMonths(2), Value = 5},
new Stats {Date = DateTime.Now.AddMonths(3), Value = 7},
};
return stats;
}
public List GetGraphData()
{
var stats=新列表
{
新统计数据{Date=DateTime.Now,Value=4},
新统计数据{Date=DateTime.Now.AddMonths(1),Value=11},
新统计数据{Date=DateTime.Now.AddMonths(2),Value=5},
新统计数据{Date=DateTime.Now.AddMonths(3),Value=7},
};
返回统计;
}
但是返回的值是
[Object{Date=“2012-11-08T16:52:04.5047592+05:30”,Value=4},[Object{Date=“2012-11-08T16:52:04.5047592+05:30”,Value=4},]
所以我决定尝试使用JSON.stringify(),它给出了以下结果
[{“日期”:“2012-11-08T16:52:04.5047592+05:30”,“价值”:4},{“日期”:“2012-12-08T16:52:04.5047592+05:30”,“价值”:11},{“日期”:“2013-01-08T16:52:04.5047592+05:30”,“价值”:5},{“日期”:“2013-02-08T16:52:04.5047592+05:30”,“价值”:7}]
如何获得如下所示的格式?
[[2008-06-30 8:00AM',4],'2008-7-30 8:00AM',6.5],'2008-8-30 8:00AM',5.7],'2008-9-30 8:00AM',9],'2008-10-30 8:00AM',8.2];
请帮我做这个
注意:请随意编辑我问题的标题,我想不出其他任何东西:p这是因为您使用的是对象而不是数组,您可以这样做:而不是这样:
new Stats {Date = DateTime.Now, Value = 4},
试试这个:
new String[] { DateTime.Now.ToString(), "4" },
当然,将列表
更改为列表
另一种选择是在获取对象后将其展平到Javascript中的数组中。假设您将来自服务器的数据放入名为serverArray
的变量中,这将看起来像一个对象数组:
var serverArray = [{Date: "2012-11-08T16:52:04.5047592+05:30", Value: 4}, { .... }, etc. etc. ];
然后可以使用将此数组映射到另一个数组:
results = serverArray.map(function (obj) { return [obj.Date, obj.Value]; });
结果如下所示(请注意,squqre括号表示一个数组,并且没有对象键、日期和值):
然后你可以在绘图时使用“结果”与样本数据的格式相同。List
完成了这项工作。答案被接受:)你能告诉我更多关于serverArray.map
approach的信息吗请..使用serverArray,我打算对来自服务器的数据使用一个随机名称。我更新了答案以使事情更清楚。
[["2012-11-08T16:52:04.5047592+05:30", 4], [......], etc. etc. ];