【问题标题】:Returning dynamic key value collection in ASP.NET Web API在 ASP.NET Web API 中返回动态键值集合
【发布时间】:2020-09-03 06:40:57
【问题描述】:

我正在开发一个 ASP.Net Web API 项目。在我的项目中,我试图以这种格式从操作中返回 JSON。

{
  "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。

如您所见,它只返回 Keys。名称被排除在外。那不是我想要的格式。如何修复我的代码以返回名称值对?

【问题讨论】:

  • 使用Dictionary&lt;string,object&gt;
  • 非常感谢。它与字典一起使用。你会发布答案吗?我想为答案投票。

标签: c# asp.net asp.net-web-api keyvaluepair namevaluecollection


【解决方案1】:

使用Dictionary&lt;string, object&gt; 添加键值对。

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"
}

【讨论】:

  • 嗨,如何使用自定义键 "result" { "Microsoft": "microsoft.com", "Google": "google.com", "Facebook": "facebook.com" } 将结果设置为 json 对象
  • @Neo 创建一个新的匿名对象,其结果为属性名称。使用上面的示例,您将返回 new { result = collection }
  • @Neo 我将其添加为您上次发布的问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2014-04-29
  • 2014-06-08
  • 2019-09-06
  • 2016-04-06
  • 2013-09-05
相关资源
最近更新 更多