项目开发中经常用到JSON序列化和反序列的功能,但是,几个相关的类拼写又复杂,还需要额外添加引用后才会智能不全。每次查找又挺麻烦,发布在这里,做一个记录,方便每次用到时查询。
一些第三方.Net序列化方法,一般不怎么使用,不再介绍。Asp.Net 里面原生的JSON序列化一般使用两个对象:JavaScriptSerializer 和 DataContractJsonSerializer。其中,DataContractJsonSerializer使用起来比较麻烦,需要给响应实体对象设定DataContract,一般不建议使用。优先推荐使用JavaScriptSerializer,需要额外引用程序集System.Web.Extensions
最佳解决方案
使用JavaScriptSerializer序列化
首先,引用程序集System.Web.Extensions,也可以直接复制JavaScriptSerializer到程序里面,然后根据提示自动引用JavaScriptSerializer
其次,JSON序列化和反序列化方法分别如下:
JavaScriptSerializer js = new JavaScriptSerializer(); //序列化: string json = js.Serialize(obj); //反序列化 T t = js.Deserialize<ReturnJson>(data);