C#中使用JavaScriptSerializer类实现序列化与反序列化

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.反序列化后的信息

猜你喜欢

转载自www.cnblogs.com/QingYiShouJiuRen/p/10271269.html