2011-06-13 3 views
2

json으로 변환해야하는 js에 연관 배열을 만드는 루프가 있습니다.어떻게이 다차원 연관 배열을 json으로 변환합니까?

자바 스크립트 : 루프의

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':"[email protected]", 'Name':"Mr. Bob"}, 
{'Email':"[email protected]", 'Name':"Mr. Tom"} 
} 

가 어떻게 JSON이를 변환 할 수 있습니다 ? (OK 작은 jQuery 플러그인과)

내 MVC 3 컨트롤러에이 JSON 배열을 전달해야 읽기

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

} 

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

감사합니다. 당신이 배열을 처리하려면 루프 호출 JSON.stringify();

var json = JSON.stringify(guests); 
+0

JavaScript에는 연관 배열과 같은 것이 없습니다. 객체가 있고 ** JSON **은 _JavaScript Object Notation_ [더 읽으십시오] (http://www.json.org/)입니다. – Tadeck

답변

3

당신은 대괄호가 필요하여 후

+0

Darrin, JSON.stringify는 jquery 또는 플러그인에서 제공됩니까? 그것을 사용하지 마십시오 ... – kheya

+0

@Projapati, 아니, jquery와 관련이 없습니다. 내 대답은 현대적인 브라우저에서 javascript 기능이 내장되어 있다고 말했기 때문에 이전 브라우저가 잘 작동하도록 링크 한 스크립트를 포함시키는 것이 좋습니다. 이전 버전의 브라우저에 관한 한 현재 최신 버전이 아닌 모든 것이 오래되었습니다. 예 : IE 8, FireFox 3.0, ... 페이지에 스크립트를 포함 시키십시오. 지능적이며 브라우저 기능 감지 기능을 제공하며 브라우저가이 기능을 지원하는 경우 단순히 기본 메소드 만 사용합니다. –

+0

URL은 어떻게됩니까 : '@ Url.Action ("AddGuests", "SomeController")'보다 안전합니까? – kheya

1

. 객체 ({})와 객체 ([])과 구별의 배열 정말 중요 : 자바 스크립트에서이 개 유물은 정말 거기에 우리가 당신의 자바 스크립트의는이 guests 배열을 보낼 AJAX를 사용하게 해결 한 이제

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

AddGuests 컨트롤러 액션 :

$.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 방법은 대부분의 최신 브라우저에 구현되어 있지만, 이전 버전의 브라우저를 위해 당신이 following script을 포함 할 수 있습니다.

마지막 발언 :

은 다음과 같이 자바 스크립트 URL을 하드 코딩하지 마십시오 :이 같은 URL을 처리 할 때

url: '/SomeController/AddGuests' 

항상 ASP.NET MVC에서 URL 헬퍼를 사용

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