[英]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.