沒什麼技術含量,純粹整理一下。web
JavaScriptSerializer.MaxJsonLength屬性用於獲取或設置接受的JSON字符串的最大長度,超出設定值時序列化或反序列化會失敗。常見的出錯的場景有:ajax
一、序列化:json
如下代碼在對象過大時會報錯:進行序列化或反序列化時出錯。字符串的長度超過了爲 maxJsonLength 屬性設置的值。ide
- //jsonObj比較大的時候會報錯
- var serializer = new JavaScriptSerializer();
- return serializer.Serialize(jsonObj);
使用Newtonsoft.Json也有此問題,解決方案是設置MaxJsonLength:spa
- var serializer = new JavaScriptSerializer();
- serializer.MaxJsonLength = Int32.MaxValue; //設置爲int的最大值
- return serializer.Serialize(jsonObj);
二、ajax訪問WebService:xml
以jQuery方式訪問WebService,若是POST的數據過大,也會收到HTTP500錯誤,解決方法是在Web.config中設置一下maxJsonLength:對象
- <system.web.extensions>
- <scripting>
- <webServices>
- <!--單位爲字節-->
- <jsonSerialization maxJsonLength="1024000" />
- </webServices>
- </scripting>
- </system.web.extensions>