使用Json.Net解決MVC中各類json操做

最近收集了幾篇文章,用於替換MVC中各類json操做,微軟mvc固然用自家的序列化,速度慢不說,還容易出問題,自定義性也太差,好比得特地解決循環引用的問題,好比datetime的序列化格式,好比性能。
NewtonSoft.json也就是Json.Net性能雖然不是最好的,可是是比較靠前的,其功能是最強大的,包含各類json操做模式。如今來看看mvc中的替換
1, Controller.Json方法
這個方法最容易出現循環引用,好比EF查出一個一對多集合想序列化,結果a引用了子表b,b中還引用了a,致使序列化遞歸溢出,解決方法在此:
http://www.cnblogs.com/Gryzor/archive/2013/05/06/3062373.html


2,模型綁定
好比ajax中傳遞了一組數據 {a:123, b:'{ 複雜類型}'} //b裏面使用的是json字符串
action方法中的參數 (int a,複雜類型 b)
解決方法:http://www.dotblogs.com.tw/a802216/archive/2013/06/01/105163.aspx
固然此時 (int a,string b)而後本身反序列化b也是能夠的。


3,值適配器綁定
最近的一篇文章:http://www.cnblogs.com/dudu/p/mvc_json_value_provider_factory.html
{a:123, b:{ 複雜類型}} // 是真正的json對象哦
contenttype也必須爲 application/json, 默認的實現性能差還囉嗦,替換後很不錯。固然這樣作性能仍是不如第2種的。


至此mvc中各類json替換完畢,你將得到更好的性能和更可靠的json操做,其餘地方json操做也推薦都用json.net,通過測試,序列化最慢的就是第一次,第二次開始速度比拼字符串還要快。因此千萬別再拼接字符串了,你拼不標準,或者說你懶得拼標準,處處是雙引號你哪裏肯拼標準了。html

相關文章
相關標籤/搜索