1.添加引用
JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Extensions.dll,找到后直接添加至引用即可,另外代码中需要使用using System.Web.Script.Serialization;
2.常见方法介绍
(1) JavaScriptSerializer():构造函数,用于创建新的JavaScriptSerializer对象。
(2)ConvertToType<T>(object):将json字符串转为类型为T(将一个Object对象转换为指定的对象T)。
(3)Deserialize<T>(string):将json字符串转化为类型T。
(4)Serialize(object):将一个对象序列化成JSON字符串
3.定义一个类,用来序列化与反序列化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyJson { public class StudentInfo { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Gender { get; set; } } }
4.实例操作:将上述列表信息序列化与反序列化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; namespace MyJson { class Program { static void Main(string[] args) { List<StudentInfo> stuList = new List<StudentInfo>(); stuList.Add(new StudentInfo() { ID = 1, Name = "唐三", Age = 20, Gender = "男" }); stuList.Add(new StudentInfo { ID = 2, Name = "小舞", Age = 20, Gender = "女" }); stuList.Add(new StudentInfo { ID = 3, Name = "唐昊", Age = 52, Gender = "男" }); //创建一个JavaScriptSerializer对象 JavaScriptSerializer json = new JavaScriptSerializer(); //将上述信息列表序列化为Json字符串 string serializeResult = json.Serialize(stuList); //序列化后的信息 Console.WriteLine("{0}", serializeResult); //将josn字符反序列化为信息列表 List<StudentInfo> DeserializedResult = json.Deserialize<List<StudentInfo>>(serializeResult); //反序列化后的信息 foreach(StudentInfo stuInfo in DeserializedResult) { Console.WriteLine("ID:{0}", stuInfo.ID); Console.WriteLine("Name:{0}", stuInfo.Name); Console.WriteLine("Age:{0}", stuInfo.Age); Console.WriteLine("Gender:{0}", stuInfo.Gender); } Console.ReadKey(); } } }
5.序列化后的信息
6.反序列化后的信息