2012-04-06 3 views
1

내 ASP.net C# 코드에서 익명 형식의 개체 (SQL의 데이터를 기반으로 함)로 채워진 IEnumerable 컨테이너가 있습니다.익명 형식의 IEnumerable을 C#에서 JavaScript Object로 serialize하는 방법은 무엇입니까?

var uics = entities.getData() 
    .Select(x => new 
     { 
      id = x.id 
      name = x.name 
      age = x.age 
     }); 
return Json(uics); //Serialize JSON in ASP.net MVC 3 

이 매우 간단하다 :

내 코드는 다음과 같이 보입니다한다고 가정하자. 이것을 JavaScript로 serialize 할 때 객체 ID, 이름 및 나이를 갖는 객체 배열을 얻습니다.

이 데이터는 인덱스로 참조되는 각 객체가 필드 이름과 나이를 갖는 JavaScript 객체로이 데이터를 직렬화합니다.

어떻게하면됩니까?

+0

기본적으로 배열을 원하십니까? json은 다음과 같이 보일 것입니다 :'[ "id1": {name : name1, age : age1}, "id2": {name, name2 : age2 age} –

+0

JSON은 사용자가 묘사 한 것과 비슷해야합니다. @Alexander –

+0

이 블로그 게시물은 도움이 될 수 있습니다. http://www.west-wind.com/weblog/posts/2012/Mar/09/Using- 대체 JSON-Serializer-in-ASPNET-Web-API – jbl

답변

4

당신은 IDictionary를 작성하고 행동의 결과로 사용할 수 있습니다,

var uics = entities.getData() 
    .ToDictionary(x => x.id, x => new { x.name, x.age }); 

return Json(uics); //Serialize JSON in ASP.net MVC 3 

여기에 명시 적으로 사용되는 익명 형식의 속성 이름을 지정할 필요가 없기 때문에 컴파일러시 기본값으로 사람들을 값을 제공하는 데 사용되는 속성의 이름입니다. 두 경우 모두 동일합니다.

+0

+1 : 이것은 내가 찾고있는 대답이다. 이 답을 구현할 때 사전 키가 강력한 형식의 GUID 인 경우 먼저 문자열로 캐스팅해야한다는 것을 발견했습니다. –

관련 문제