在C#中实现Json的序列化与反序列化
第一种方式利用 JavaScriptSerializer 【对应的Assembly 为 System.Web.Extensions.dll】 进行处理:
public static class KasJsonSerializer { public static string Serialize<T>(T t) { JavaScriptSerializer jsonSerialize = new JavaScriptSerializer(); return jsonSerialize.Serialize(t); } public static T Deserialize<T>(string jsonString) { JavaScriptSerializer jsonSerialize = new JavaScriptSerializer(); return (T)jsonSerialize.Deserialize<T>(jsonString); } }
第二种方式利用Json.Net处理, 用 JsonConvert 【对应的Assem 为 Newtonsoft.Json.dll】 进行处理,并且这是更好的一种方式。
序列化:
Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Sizes = new string[] { "Small" }; string json = JsonConvert.SerializeObject(product); // { // "Name": "Apple", // "Expiry": "2008-12-28T00:00:00", // "Sizes": [ // "Small" // ] // }
反序列化:
string json = @"{ 'Name': 'Bad Boys', 'ReleaseDate': '1995-4-7T00:00:00', 'Genres': [ 'Action', 'Comedy' ] }"; Movie m = JsonConvert.DeserializeObject<Movie>(json); string name = m.Name; // Bad Boys
更多内容请看如下链接: http://www.newtonsoft.com/json