1

私はASP.Net Web APIプロジェクトを開発中です。私のプロジェクトでは、この形式のアクションからJSONを返そうとしています。ASP.NET Web 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したい。 "microsoft.com"、 "グーグル": "google.com"、 "Facebookの":「Facebookの –

答えて

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オブジェクトとして結果セットすることができます。 com " }' – Neo

+1

@Neo結果をプロパティ名として新しい匿名オブジェクトを作成します。上記の例を使用すると、 'new {result = collection}' – Nkosi

+0

を働かせてくれます。 – Neo

関連する問題