1、Web.config
网上大部分的解决方案为
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644" />
</webServices>
</scripting>
</system.web.extensions>
或许是我的JSON还是太长,这个解决方案并未起作用。
2、从返回值方面修改(推荐)
将原本返回的JsonResult改为ActionResult,真正返回时返回ContentResult
代码如下:
var serializer = new JavaScriptSerializer();//使用原生Json转换类
serializer.MaxJsonLength = Int32.MaxValue;
var result = new ContentResult
{
Content = JsonConvert.SerializeObject(list),// serializer.Serialize(list), //data为要序列化的LINQ对象
ContentType = "application/json"
};return result;
或:
ContentResult result = new ContentResult
{
Content = JsonConvert.SerializeObject(list),//serializer.Serialize(list), //data为要序列化的LINQ对象
ContentType = "application/json"
};
return result;
本文介绍了一种解决Web应用程序中JSON序列化长度超过默认限制的方法。通过将返回类型从JsonResult更改为ActionResult,并手动设置JavaScriptSerializer的MaxJsonLength属性为Int32.MaxValue,可以有效处理超长JSON数据。此外,提供了具体的代码示例,展示了如何使用ContentResult返回序列化后的JSON数据。
1838

被折叠的 条评论
为什么被折叠?



