2015-06-18 55 views
0

我有一大組數據,它可能會有所不同。當數據被序列化並從C#傳遞給JS時,我遇到了MaxJsonLength的錯誤。我應該設置MaxJsonLength的大小是多少?有關係嗎?

我發現一個修復程序here,它工作正常。但是我很好奇,如果把這個數字設置得太高就不好。 顯然有一個原因,它默認爲102400(100k)。

是否有可能在JavaScriptSerializer字符串長度中找出我的數據的粗略大小,因此我可以將配置文件中的數字降低?

感謝

回答

0

當我設置該屬性,我們的JSON是unicode(每個字符兩個字節),所以我們使用了一個十一MB JSON文件中的以下內容:

1024 * 1024 * 22

這給我們23068672.

所以,我的例子如下 - 如果你計算你的JSON的實際長度(11MB),如果unicode(22MB)然後鍛鍊字節(1024 * 1024),則加倍。

爲了得到JSON的長度,簡單地計算從JSON字符串的字節數:

變種計數= Encoding.UTF8.GetBytes(JSON)。長度;

+0

感謝您的幫助。我遵循你所說的,我已經在c#中的數組中完成了它,然後由asp.net中的JavaScriptSerializer自動發送和處理它。我已經做了這個 'JavaScriptSerializer json = new JavaScriptSerializer(); json.Serialize(data); int a = Encoding.UTF8.GetBytes(json.ToString())。Length;' 並且它給了我52這個結果是54525952使用你的計算。但是我測試了它並將其減少了一個並將其添加到配置文件中。該方案仍然奏效。 – SammyG

相關問題