asp.net的JSON数据进行序列化和反序列化

时间:2022-12-28 17:59:45

先要引用在程序集 System.Web.Extensions.dll 的类库,在类中 using System.Web.Script.Serialization 命名空间。

1、定义一个强类型的类(model):


     [Serializable]
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
}

2、将对象 序列化 成json字符串方法

     #region 将对象 序列化 成json字符串
/// <summary>
/// 将对象 序列化 成json字符串
/// </summary>
/// <param name="obj">需要序列化的对象</param>
/// <returns>返回序列化json的对象</returns>
public string ObjSerializableJson(object obj)
{
string result = null;
JavaScriptSerializer javaScript = new JavaScriptSerializer();
result = javaScript.Serialize(obj);
return result;
}
#endregion

3、将json格式的字符串 反序列化 成对象方法

     #region 将json格式的字符串 反序列化 成对象
/// <summary>
/// 将json格式的字符串 反序列化 成对象
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="jsonStr">json字符串</param>
/// <returns>返回 T 类型的对象</returns>
public T ContraSerializableJson<T>(string jsonStr)
{
JavaScriptSerializer javaScript = new JavaScriptSerializer();
return javaScript.Deserialize<T>(jsonStr);
}
#endregion

使用例子:

  List<Person> list = new List<Person>()
{
new Person() { Age = , Name = "张三" },
new Person() { Age = , Name = "李四" },
new Person() { Age = , Name = "小二" }
};
string json = ObjSerializableJson(list); //得到序列化json字符串 List<Person> listJson = ContraSerializableJson<List<Person>>(json); //得到 将对象反序列化的对象