[轉]ASP.NET MVC Json()處理大數據異常解決方法 json maxjsonlength


本文轉自:http://blog.csdn.net/blacksource/article/details/18797055

 

先對項目做個簡單介紹:

整個項目采用微軟的ASP.NET MVC3進行開發,前端顯示采用EasyUI框架,圖表的顯示用的是Highcharts,主要進行曲線圖的繪制,這樣比較形象地描繪出變化的趨勢。由於數據量比較大(大於1000,000條記錄),而highcharts接受的數據類型為json格式,所以controller從數據庫中取出的數據需要先格式化成json,然后再傳到前端。平時一直采用MVC的Json()將數據序列化成json格式,但是由於此次數據量較大,所以曲線不顯示,所以一直以為是由於數據量較大,highcharts插件不支持100w級數據,后來聽人說highcharts本身是支持100w級數據的。最后采用firebug調試才發現出現了錯誤:“使用JSON JavaScriptSerializer進行序列化或反序列化時出錯。字符串的長度超過了為maxJsonLength屬性設置的值”,網上也找了不少解決方案,幾乎無一例外說的是在web.config的節點下添加:

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="1024000000" />
        </webServices>
    </scripting>
</system.web.extensions>

試過后發現曲線還是沒出來,最后拿出殺手鐧:谷歌翻譯成英文,再次搜索,最后終於在stackoverflow上找到解決之法:

public ActionResult GetLargeJsonResult()
{
  return new ContentResult
    {
        Content = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }.Serialize(myBigdata),
        ContentType = "application/json"
    };
}

具體網址:http://stackoverflow.com/questions/4155014/json-asp-net-mvc-maxjsonlength-exception

這里不得不大贊StackOverflow,好多問題都是在上面找到solution,而且上面還有非常多的好心人士熱心細致的回答問題,我提了好幾個問題都最終得到所謂Geek的幫助並得以解決。這里,我只想說聲:謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM