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类库:
引入类库:
//使用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