您现在的位置是:网站首页> C#技术
解决使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
- C#技术
- 2021-11-29
- 923人已阅读
前言
在.net mvc的控制器中,我们在写一些返回json数据的方法,一般会写成return Json(obj);但这种返回类型如果是obj数据过大的话,这时候就会报错因此我们需要改变一下返回类型
常见写法
在.net mvc的controller中,方法返回JsonResult,一般我们这么写:
[HttpPost]
public JsonResult GetKnowledgeSolrList()
{
var str = "";//大数据
return Json(str);
}
此时如果str过长,就会报“使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值”。
解决办法
1、在web.config增加如下节点到configuration下,这边我们直接设置成最大值2147483647。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647" />
</webServices>
</scripting>
</system.web.extensions>
2、返回方法调整成
[HttpPost]
public JsonResult GetKnowledgeSolrList()
{
var str = "";//大数据
return new JsonResult()
{
Data = str,
MaxJsonLength = int.MaxValue,
ContentType = "application/json"
};
}