最近收集了几篇文章,用于替换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,经过测试,序列化最慢的就是第一次,第二次开始速度比拼字符串还要快。所以千万别再拼接字符串了,你拼不标准,或者说你懒得拼标准,到处是双引号你哪里肯拼标准了。

最新文章

  1. HashMap归档-超越昨天的自己系列
  2. ffmpeg-20160718-git-bin.7z
  3. 答:我们公司的ASP.NET 笔试题,你觉得难度如何
  4. GDAL编译
  5. Python3基础系列-程序模板及代码本质
  6. 在 Ubuntu 上安装 TensorFlow (官方文档的翻译)
  7. Vxlan学习笔记——实现
  8. 【Bayesian】贝叶斯决策方法(Bayesian Decision Method)
  9. MKAnnotationView和MKPinAnnotationView的区别
  10. FPGA三段式状态机的思维陷阱
  11. 【Java面试题】23 java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
  12. git自动更新网站代码
  13. Java中如何输入一个字符
  14. Java微信开发_Exception_03_非微信官方网页-invalid signature
  15. Siteserver平台搭建
  16. maven 依赖范围
  17. iOS-Swift相比Objective-C有哪些优缺点
  18. Your Ride Is Here
  19. linux--安装phpcurl扩展
  20. 【转】Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

热门文章

  1. 【ELK】5.spring boot日志集成ELK,搭建日志系统
  2. Java List集合冒泡法排序的两种实现
  3. java单例模式实例
  4. 蓝精灵:寻找神秘村Smurfs: The Lost Village迅雷下载
  5. MECE分析法(Mutually Exclusive Collectively Exhaustive)
  6. 洛谷 P1123 取数游戏
  7. go语言之进阶篇recover的使用
  8. C#中byte[] 转 double[] 或 int[] 或 struct结构体
  9. JQuery-Dialog(弹出窗口,遮蔽窗口)
  10. 屌丝就爱尝鲜头——java8总结晒一晒