Posts
163
Comments
179
Trackbacks
5
Aumentare la dimensione dei JSON modificando la proprietà maxJsonLength


In certe situazione potrebbe capitare di ricevere questo errore:

Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.

Come è facile intuire dal messaggio, l’errore si ha quando si tenta di serializzare o deserializzare un JSON la cui dimensione sia maggiore rispetto a quella di default. Nel mio caso l’errore si aveva durante la chiamata ad un PageMethods fatta tramite jQuery. I dati passati infatti risultavano essere troppo grandi.

La proprietà maxJsonLength è quella che controlla la dimensione massima dei dati JSON e può essere modificata da web.config:

   1: <System.Web.Extensions> 
   2:     <Scripting> 
   3:       <WebServices> 
   4:         <JsonSerialization MaxJsonLength="500000"> 
   5:         </JsonSerialization> 
   6:       </WebServices> 
   7:     </Scripting> 
   8: </System.Web.Extensions>

Leggendo la documentazione ufficiale viene indicato che la dimensione di default è di 2097152 caratteri pari a 4 Mb di dati Unicode. Questo però nel mio caso non è vero, dato che, pur passando meno dati di questo limite, ricevo l’errore sopra indicato.

Utilizzando le due righe di codice seguenti, ho verificato che il limite nel mio caso (Framework .NET 3.5 SP1) è di 102400 caratteri, quindi ben inferiore al limite indicato nella documentazione.

   1: String sectionName = "system.web.extensions/scripting/webServices/jsonSerialization";
   2: ScriptingJsonSerializationSection jsonSection =
   3:     (ScriptingJsonSerializationSection)WebConfigurationManager.GetSection(sectionName);
   4: Response.Write(jsonSection.MaxJsonLength);
posted on lunedì 3 maggio 2010 15:03 Print
Comments
Gravatar
# re: Aumentare la dimensione dei JSON modificando la proprietà maxJsonLength
Michele
26/05/2010 16:31
Ne so qualcosa anche io :)
Comments have been closed on this topic.
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS