c# json的序列化及反序列化
时间: 2024-09-10 15:05:41 浏览: 44
C#之JSON序列化和反序列化
C#中的JSON序列化和反序列化是指将对象转换为JSON格式的字符串(序列化),以及将JSON格式的字符串转换回对象(反序列化)。这一过程在与Web API交互时尤为常见,因为它是一种轻量级的数据交换格式。C#中常用的库有Newtonsoft.Json和System.Text.Json。
1. Newtonsoft.Json(也称为Json.NET)是.NET平台上一个广泛使用的JSON处理库。它提供了强大的序列化和反序列化功能。使用 Newtonsoft.Json 进行序列化和反序列化的代码示例如下:
```csharp
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
// 假设有一个对象
Person person = new Person
{
Name = "张三",
Age = 30,
Address = new Address
{
City = "北京",
Street = "天安门广场"
}
};
// 序列化对象到JSON字符串
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
// 反序列化JSON字符串到对象
Person newPerson = JsonConvert.DeserializeObject<Person>(json);
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
public string Street { get; set; }
}
```
2. System.Text.Json是.NET Core 3.0及以上版本内置的一个轻量级JSON序列化库。它用于处理JSON数据,与 Newtonsoft.Json 相比,它更专注于性能和内存使用效率。System.Text.Json 序列化的代码示例如下:
```csharp
using System.Text.Json;
public class Program
{
public static void Main()
{
// 假设有一个对象
Person person = new Person
{
Name = "张三",
Age = 30,
Address = new Address
{
City = "北京",
Street = "天安门广场"
}
};
// 序列化对象到JSON字符串
string json = JsonSerializer.Serialize(person);
Console.WriteLine(json);
// 反序列化JSON字符串到对象
Person newPerson = JsonSerializer.Deserialize<Person>(json);
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
public string Street { get; set; }
}
```
阅读全文