使用JSON JavaScriptSerializer进行反序列化和序列化时报错,字符的长度超出了MaxJsonLength的长度

       文章参考:https://www.cnblogs.com/wangfuyou/p/6046307.html

1.解决办法是在web.config增加如下节点到<configuration>下

<system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="1024000000" />
      </webServices>
    </scripting>
  </system.web.extensions>

 

2.

1  RootObject ScriptDeserialize(string json)
2         {
3             //JSON 字符串的最大长度。 默认长度为 2097152 个字符,等同于 4 MB 的 Unicode 字符串数据。
4             //js.MaxJsonLength = 2097152;
5              js.MaxJsonLength  = 10240000;
6             JavaScriptSerializer jsseria = new JavaScriptSerializer();
7             jsseria.MaxJsonLength = Int32.MaxValue;
8             return js.Deserialize<RootObject>(json);
9         }

 

    提示:不能直接修改json的大小,因为MVC框架内置的JsonResult代码中,在使用JavaScriptSerializer时,都是采用的默认值,没有从maxJsonLength读取值,即忽略了这个配置

所以我们要重写一下,覆盖原有的配置。

posted @ 2018-01-19 15:42  专于技术的菜鸟  阅读(1575)  评论(5编辑  收藏  举报