您现在的位置是:网站首页> C#技术

解决使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性

摘要

前言

在.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"

            };

        }


Top