JSON字符串被截断

时间:2017-03-16 15:17:34

标签: c# json asp.net-core asp.net-core-mvc

我的应用程序是ASP.NET Core 1.0 Web API。

如果我的Controller返回一个小JSON,一切正常。 但是,如果JSON变大,我就会得到error

Visual Studio正在给我这个error

这是控制器和创建数据(缩短)的方法

  [HttpGet]
  public async Task<IActionResult> GetUserData()
  {        
        return this.Ok(GetSomeData());
  }

   private List<MyUser> GetSomeData()
   {
       var userList = new List<MyUser>();
       for (int i = 0; i < 2500; i++)
       {
            userList.Add(new MyUser{
                Name = "Data",
                Age = i,
                Phone = "000",
            });
       }
       return userList;
   }

如果循环变大,我会得到上面列出的错误。

请记住,代码非常简单。但一切正常,直到返回大量数据。

我尝试更改maxJsonLength中的web.config,如here所述。

2 个答案:

答案 0 :(得分:0)

我的问题是我有一个中间件会过早抛出异常并关闭响应

答案 1 :(得分:-1)

请参阅使用web api和json,您可以传输的数据量有限制。但一种古怪的方式可能是返回序列化为json的文本/纯文本数据。

因此,如果您更改了GetUserData()操作:

[HttpGet]
public async Task<HttpResponseMessage> GetUserData()
{     
   var result = GetSomeData();
   var response = Request.CreateResponse();
   response.Content = new StringContent(JsonConvert.SerializeObject(result));
   return response;
}

然后在您的客户端中,您可以使用JsonConvert.DeserializeObject方法构建对象。