JavaScriptSerializer.MaxJsonLength屬性問題

沒什麼技術含量,純粹整理一下。web

JavaScriptSerializer.MaxJsonLength屬性用於獲取或設置接受的JSON字符串的最大長度,超出設定值時序列化或反序列化會失敗。常見的出錯的場景有:ajax

一、序列化:json

如下代碼在對象過大時會報錯:進行序列化或反序列化時出錯。字符串的長度超過了爲 maxJsonLength 屬性設置的值。ide

  
  
  
  
  1. //jsonObj比較大的時候會報錯 
  2. var serializer = new JavaScriptSerializer(); 
  3. return serializer.Serialize(jsonObj); 

使用Newtonsoft.Json也有此問題,解決方案是設置MaxJsonLength:spa

  
  
  
  
  1. var serializer = new JavaScriptSerializer(); 
  2. serializer.MaxJsonLength = Int32.MaxValue;    //設置爲int的最大值 
  3. return serializer.Serialize(jsonObj); 

二、ajax訪問WebService:xml

以jQuery方式訪問WebService,若是POST的數據過大,也會收到HTTP500錯誤,解決方法是在Web.config中設置一下maxJsonLength:對象

  
  
  
  
  1. <system.web.extensions> 
  2.   <scripting> 
  3.     <webServices> 
  4.       <!--單位爲字節--> 
  5.       <jsonSerialization maxJsonLength="1024000" /> 
  6.     </webServices> 
  7.   </scripting> 
  8. </system.web.extensions>
相關文章
相關標籤/搜索