您的位置:首页 > Web前端 > JavaScript

JavaScriptSerializer.MaxJsonLength属性问题

2014-02-26 11:59 435 查看
没什么技术含量,纯粹整理一下。
JavaScriptSerializer.MaxJsonLength属性用于获取或设置接受的JSON字符串的最大长度,超出设定值时序列化或反序列化会失败。常见的出错的场景有:
1、序列化:
以下代码在对象过大时会报错:进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
//jsonObj比较大的时候会报错
var serializer = new JavaScriptSerializer();
return serializer.Serialize(jsonObj);

使用Newtonsoft.Json也有此问题,解决方案是设置MaxJsonLength:
var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;    //设置为int的最大值
return serializer.Serialize(jsonObj);

2、ajax访问WebService:
TEXT-INDENT: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/28px 宋体, 'Arial Narrow', arial, serif; WHITE-SPACE: normal; LETTER-SPACING: normal; HEIGHT: auto; CLEAR: both; OVERFLOW: hidden; WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-stroke-width:
0px">以jQuery方式访问WebService,如果POST的数据过大,也会收到HTTP500错误,解决方法是在Web.config中设置一下maxJsonLength:
<system.web.extensions>
<scripting>
<webServices>
<!--单位为字节-->
<jsonSerialization maxJsonLength="1024000" />
</webServices>
</scripting>
</system.web.extensions>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐