将List转换为JSon并在Web API操作中返回它

Mig*_*ura 4 asp.net-web-api

我有以下内容:

var data = new List<DataModel>();
Run Code Online (Sandbox Code Playgroud)

DataModel的位置如下:

public class DataModel {
  public DateTime Date { get; set; }
  public Int32 Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何将此List转换为JSON格式并在WebAPI 2.0操作中返回它?

谢谢你,米格尔

Dar*_*ler 22

你可以用神奇的方式做到这一点......

  public class JsonListObjectController : ApiController
  {
      public List<DataModel> Get()
      {
          var data = new List<DataModel>()
        {
            new DataModel() {Date = DateTime.Today, Users = 100},
            new DataModel() {Date = DateTime.Today, Users = 120}
        };

          return data;
      }

  }
Run Code Online (Sandbox Code Playgroud)

或者你可以做到"我想保持控制的方式"

    public HttpResponseMessage Get()
    {
        var data = new List<DataModel>()
        {
            new DataModel() {Date = DateTime.Today, Users = 100},
            new DataModel() {Date = DateTime.Today, Users = 120}
        };

        return new HttpResponseMessage()
            {
                Content = new StringContent(JArray.FromObject(data).ToString(), Encoding.UTF8, "application/json")
            };
    } 
Run Code Online (Sandbox Code Playgroud)

  • @KDT您将很快了解到,直接从浏览器发出请求以测试API会给您带来很多麻烦。使用专为工作而设计的工具,例如提琴手,邮递员,runscope,devHttpClient等 (2认同)