Javascript 如何将这个多维关联数组转换为json?

Javascript 如何将这个多维关联数组转换为json?,javascript,jquery,json,asp.net-mvc-3,Javascript,Jquery,Json,Asp.net Mvc 3,我有一个在js中创建关联数组的循环,我需要将其转换为json Javascript: var guest = {}; var guests = {}; for(var i=0;i<2;i++){ var name = GetName(); var email = GetEmail(); guest = { 'Email': email, 'Name': name }; guests.push(guest); } 如何将其转换为JSON?(使用小型jquery插件可以)

我有一个在js中创建关联数组的循环,我需要将其转换为json

Javascript:

var guest = {};
var guests = {};

for(var i=0;i<2;i++){
  var name = GetName();
  var email = GetEmail();
  guest = { 'Email': email, 'Name': name };
  guests.push(guest);
}
如何将其转换为JSON?(使用小型jquery插件可以)

我需要将此json数组传递给我的MVC 3控制器:

[HttpPost]
public ActionResult AddGuests(List<SelectedGuest> guests){

}

public class SelectedGuest
{
    public string Email { get; set; }
    public string Name { get; set; }
}
[HttpPost]
公共行动结果添加来宾(列出来宾){
}
公共类SelectedGuest
{
公共字符串电子邮件{get;set;}
公共字符串名称{get;set;}
}

感谢阅读。

在您的for循环调用
JSON.stringify()之后


如果要处理数组,则需要方括号。在javascript中实际上有两个构件:对象(
{}
)和对象数组(
[]
),两者之间的区别非常重要:

var guest = { };
var guests = [ ];

for(var i = 0; i < 2; i++) {
    var name = GetName();
    var email = GetEmail();
    guest = { 'Email': email, 'Name': name };
    guests.push(guest);
}
这里显示的
JSON.stringify
方法在大多数现代浏览器中都是实现的,但对于较旧的浏览器,您可能希望包括

最后一句话:

不要像这样在javascript中硬编码URL:

url: '/SomeController/AddGuests'
url: '@Url.Action("AddGuests", "SomeController")'
处理Url时,请始终在ASP.NET MVC中使用Url帮助程序,如下所示:

url: '/SomeController/AddGuests'
url: '@Url.Action("AddGuests", "SomeController")'

JavaScript中没有关联数组这样的东西。有对象,JSON是JavaScript对象表示法。@Projapati,不,与jquery无关。正如我在回答中所说的,它是现代浏览器中内置的javascript函数,最好将我链接到的脚本包含进来,以便旧浏览器也能工作。对于较旧的浏览器来说,所有不是当前最新版本的东西都是旧的。例如:IE8,Firefox3.0。。。因此,请确保只需在页面中包含脚本:它是智能的,并执行浏览器功能检测,如果浏览器支持该功能,则只需使用本机方法。url:“@url.Action”(“AddGuests”,“SomeController”)”更安全或更好吗?@Projapati,例如,假设您已对url进行了硬编码,如图所示。现在,您的应用程序将在卡西尼号的开发中运行良好。然后,您将在IIS中部署应用程序。但是在IIS中可能有一个虚拟目录,因此正确的url将是
/NameOfVirtualDirectory/SomeController/AddGuests
。因为您已经硬编码了url,所以您的应用程序根本无法工作,并在生产中返回404错误。因此:绝对不要在ASP.NET MVC应用程序中硬编码Url,始终使用Url帮助程序,因为它们会考虑到这些场景。脚本的简化版本在哪里?我在@Projapati这里看到了多个js文件,我不认为有缩小版可用。你可以使用许多工具中的一个来缩小它。例如,在本文末尾有一个这样的工具:
url: '@Url.Action("AddGuests", "SomeController")'