zoukankan      html  css  js  c++  java
  • C#中使用JavaScriptSerializer类实现序列化与反序列化

    1.添加引用

        JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5System.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.反序列化后的信息

  • 相关阅读:
    mongodb
    winform最小化到托盘
    C# 多线程实例化 定时执行 实例化线程 刷新控件
    如何弹出一个模式窗口来显示进度条
    如何使自己的程序只运行一次
    Form窗体点击关闭按钮并未关闭进程的解决方法
    如何用C#写一个简单的Login窗口
    C#操作IIS添加MIME类型(win2003)
    天天学习WPF
    如何注册dll文件
  • 原文地址:https://www.cnblogs.com/QingYiShouJiuRen/p/10271269.html
Copyright © 2011-2022 走看看