Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在ASP.NET MVC中将对象列表转换为Json_Jquery_Asp.net Mvc_Json_Asp.net Mvc 4 - Fatal编程技术网

Jquery 在ASP.NET MVC中将对象列表转换为Json

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

我正在使用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<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. ];