c#中json序列化与反序列化
来源:互联网 发布:金十数据官网外汇 编辑:程序博客网 时间:2024/06/05 03:27
序列化与反序列化有以下三种方式
1、使用JavaScriptSerializer类
2、使用DataContractJsonSerializer类
3、使用JSON.NET类库
一、使用JavaScriptSerializer类需要引用System.Web.Script.Serialization
//对象Order or = new Order() { orderid = 1235, clientid = 236, passengername = "宫本武藏"};//序列化JavaScriptSerializer js = new JavaScriptSerializer (); string jsonStr = js.Serialize(or);//反序列化Order od = js.Deserialize<Order>(jsonStr);
二、使用DataContractJsonSerializer需要引用System.Runtime.Serialization.Json
//对象Order or = new Order() { orderid = 1236, clientid = 2966, passengername = "娜可露露"};//序列化DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(or));MemoryStream Obj = new MemoryStream();js.WriteObject(Obj, or);Obj.Position = 0;StreamReader sr = new StreamReader(Obj, Encoding.UTF8);string json = sr.ReadToEnd();sr.Close();Obj.Close();//反序列化var ms = new MemoryStream(Encoding.Unicode.GetBytes(json));DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(Order));Order od= (Order)deseralizer.ReadObject(ms);
三、使用json.net需要在NuGut程序包中引入类库json.net,代码开头引用Newtonsoft.Json
//对象Order or = new Order() { orderid = 1237, clientid = 136, passengername = "橘右京"};//序列化string jsonStr = JsonConvert.SerializeObject(or);//反序列化Order od= JsonConvert.DeserializeObject<Order>(jsonStr);
四、总结
嗯,我没有测试过他们的速度性能,但是据说json.net会性能优秀很多。
阅读全文