1

ASP.Net 웹 API 프로젝트를 개발 중입니다. 내 프로젝트에서이 형식으로 작업에서 JSON을 반환하려고합니다.ASP.NET 웹 API에서 동적 키 값 컬렉션 반환

{ 
    "Apple": null, 
    "Microsoft": null, 
    "Google": 'http://placehold.it/250x250' 
} 

JSON에서 볼 수있는 것처럼 키 값 쌍입니다. 키와 값은 모두 동적입니다. 그래서 액션에서 NameValueCollection을 반환하여 해당 형식을 얻으려고했습니다. 아래 내 코드를 참조하십시오.

public class CompaniesController : ApiController 
{ 
    // GET api/<controller> 
    public HttpResponseMessage Get() 
    { 
     NameValueCollection collection = new NameValueCollection(); 
     collection.Add("Microsoft", "microsoft.com"); 
     collection.Add("Google", "google.com"); 
     collection.Add("Facebook", "facebook.com"); 
     return Request.CreateResponse(HttpStatusCode.OK, collection, "application/json"); 
    } 
} 

하지만 액션에 액세스하면 아래의 JSON이 반환됩니다. 당신이 볼 수 있듯이

enter image description here

것은, 그것은 단지 키를 반환합니다. 이름은 제외됩니다. 그건 내가 원하는 형식이 아니야. 내 이름 코드 쌍을 반환하도록 코드를 수정하는 방법을 알려주십시오.

+3

사용하는 사전을 반환합니다 - –

+1

사용'사전 <문자열, 개체>' – Nkosi

+0

정말 감사합니다. 사전과 함께 작업했습니다. 답변을 올리시겠습니까? 나는 대답을 upvote 싶습니다. –

답변

1

키 값 쌍을 추가하려면 Dictionary<string, object>을 사용하십시오.

public class CompaniesController : ApiController { 
    // GET api/<controller> 
    public HttpResponseMessage Get() { 
     var collection = new Dictionary<string, object>(); 
     collection.Add("Microsoft", "microsoft.com"); 
     collection.Add("Google", "google.com"); 
     collection.Add("Facebook", "facebook.com"); 
     return Request.CreateResponse(HttpStatusCode.OK, collection, "application/json"); 
    } 
} 

application/json으로, 위에서 언급 한

{ 
    "Microsoft": "microsoft.com", 
    "Google": "google.com", 
    "Facebook": "facebook.com" 
} 
+0

안녕하세요 내가 설정하는 방법 사용자 지정 키 ' "결과" { "마이크로 소프트"와 JSON 객체로 결과 "microsoft.com", "구글": "google.com" "페이스 북": "페이스 북. com " }' – Neo

+1

@Neo 결과를 속성 이름으로하여 새로운 익명 개체를 만듭니다. 위의 예제를 사용하면'new {result = collection}' – Nkosi

+0

이 작동 감사합니다. – Neo