asp.net的JSON数据进行序列化和反序列化
先要引用在程序集 System.Web.Extensions.dll 的类库,在类中 using System.Web.Script.Serialization 命名空间。
1、定义一个强类型的类(model):
1 [Serializable] 2 public class Person 3 { 4 public int Age { get; set; } 5 public string Name { get; set; } 6 }
2、将对象 序列化 成json字符串方法
1 #region 将对象 序列化 成json字符串 2 /// <summary> 3 /// 将对象 序列化 成json字符串 4 /// </summary> 5 /// <param name="obj">需要序列化的对象</param> 6 /// <returns>返回序列化json的对象</returns> 7 public string ObjSerializableJson(object obj) 8 { 9 string result = null; 10 JavaScriptSerializer javaScript = new JavaScriptSerializer(); 11 result = javaScript.Serialize(obj); 12 return result; 13 } 14 #endregion
3、将json格式的字符串 反序列化 成对象方法
1 #region 将json格式的字符串 反序列化 成对象 2 /// <summary> 3 /// 将json格式的字符串 反序列化 成对象 4 /// </summary> 5 /// <typeparam name="T">对象类型</typeparam> 6 /// <param name="jsonStr">json字符串</param> 7 /// <returns>返回 T 类型的对象</returns> 8 public T ContraSerializableJson<T>(string jsonStr) 9 { 10 JavaScriptSerializer javaScript = new JavaScriptSerializer(); 11 return javaScript.Deserialize<T>(jsonStr); 12 } 13 #endregion
使用例子:
1 List<Person> list = new List<Person>() 2 { 3 new Person() { Age = 0, Name = "张三" }, 4 new Person() { Age = 1, Name = "李四" }, 5 new Person() { Age = 2, Name = "小二" } 6 }; 7 string json = ObjSerializableJson(list); //得到序列化json字符串 8 9 List<Person> listJson = ContraSerializableJson<List<Person>>(json); //得到 将对象反序列化的对象