C# 序列化与反序列化

Json 序列化是指 实体类属性转化成Json

Josn 反序列化指 将Json转化为实体类

1.使用JavaScriptSerializer类:

//使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dll.中

using System.Web.Script.Serialization;

class Program
{
    static void Main(string[] args)
    {
        //序列化操作
        JavaScriptSerializer jss = new JavaScriptSerializer();
        var json = new { name = "fxhl", age = 23 };           
        string str = jss.Serialize(json);  
        //反序列化操作
        Person person = jss.Deserialize<Person>(str);
        Console.WriteLine(person.name);
    }
}  
[Serializable]      
public class Person
{
    public string name { get; set; }
    public int age { get; set; }

}


2.使用JSON.NET类库:

引入类库:

C# 序列化与反序列化

//使用Json.NET类库需要引入的命名空间

class Program
{
static void Main(string[] args)
{
    //序列化操作
    var json = new { user = new { name = "fxhl", age = 23 }};
    string jsonData = JsonConvert.SerializeObject(json);
    Console.WriteLine(jsonData);
    //反序列化操作方法一
    Person p1= JsonConvert.DeserializeObject<Person>(jsonData);
    Console.WriteLine(p1.user.name);
    //反序列化操作方法二
    string json2 = "[{\"user\":{\"name\":\"fxhl\",\"age\":23}}]";
    List<Person> listp2= JsonConvert.DeserializeObject<List<Person>>(json2);
    Console.WriteLine(listp2[0].user.name);
    Console.ReadKey();
}
}
public class Person
{
    public Person user { get; set; }
    public string name { get; set; }
    public int age { get; set; }

}


摘自 https://www.cnblogs.com/fengxuehuanlin/p/5700282.html#anchor4