JSON字符串被切断[重复]
Posted
技术标签:
【中文标题】JSON字符串被切断[重复]【英文标题】:JSON String gets cut off [duplicate] 【发布时间】:2017-08-07 20:44:32 【问题描述】:我的应用程序是 ASP.NET Core 1.0 Web API。
如果我的控制器返回一个小的 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;
如果循环变大,我会收到上面列出的错误。
请记住,代码非常简化。但一切正常,直到返回大量数据。
我已尝试更改web.config
中的maxJsonLength
,正如here 所述。
【问题讨论】:
有兴趣的朋友,我的问题在this帖子中得到了解答。 【参考方案1】:我的问题是我的中间件会很快抛出异常并关闭响应
【讨论】:
【参考方案2】:请看,使用 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
方法构造您的对象。
【讨论】:
感谢您的回答。这对我不起作用..当我尝试获取包“Microsoft.AspNet.WebApi.Core”时,我收到错误消息,它与“netcoreapp1.0”不兼容。因此我没有方法 CreateResponse();您还有其他建议吗? 我找到了一种解决方法来获取 Response 对象 link 我将使用 HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.Gone) 而不是 Request.CreateResponse() 但这对我不起作用..以上是关于JSON字符串被切断[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将文本字段更新为 JSON 字符串 - Javascript/JQuery [重复]