簡體   English   中英

如何將此多維關聯數組轉換為 json?

[英]How do I convert this multi-dimentional associative array to json?

我有一個循環在 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);
}

循環結束會給我說:

{
 {'Email':"bob@zyz.com", 'Name':"Mr. Bob"},
 {'Email':"tom@zyz.com", 'Name':"Mr. Tom"}
}

如何將其轉換為 JSON? (可以用小 jquery 插件)

我需要將此 json 數組傳遞給我的 MVC 3 controller:

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

}

public class SelectedGuest
{
    public string Email { get; set; }
    public string Name { get; set; }
}

謝謝閱讀。

如果要處理 arrays,則需要方括號。 在 javascript 中確實有兩個工件:對象( {} )和對象的 arrays ( [] ),區別非常重要:

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);
}

現在我們已經修復了您的 javascript,讓我們使用 AJAX 將此guests數組發送到AddGuests controller 操作:

$.ajax({
    url: '/SomeController/AddGuests',
    data: JSON.stringify(guests),
    type: 'POST',
    contentType: 'application/json', // <-- Make sure to set the proper content type
    success: function(result) {
        // TODO: handle the results of the controller action
    }
});

此處顯示的JSON.stringify方法已在大多數現代瀏覽器中實現,但對於較舊的瀏覽器,您可能需要包含以下腳本

最后一句話:

永遠不要像這樣在 javascript 中硬編碼網址:

url: '/SomeController/AddGuests'

在處理 url 時,始終在 ASP.NET MVC 中使用 Url 助手,如下所示:

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

在你的 for 循環調用JSON.stringify();

var json = JSON.stringify(guests);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM