Newtonsoft.Json(也称为Json.NET)是一个非常流行的用于处理JSON数据的库。它提供了丰富的属性和方法,用于序列化和反序列化JSON数据。下面将通过C#代码详细讲解一些常用的属性和方法,并提供详细的代码注释。
1. 安装Newtonsoft.Json
首先,需要通过NuGet安装Newtonsoft.Json库。可以通过以下命令安装:
Install-Package Newtonsoft.Json
2. 基本序列化和反序列化
序列化(将对象转换为JSON字符串)
using Newtonsoft.Json;
using System;
public class Person
{
public string Name {
get; set; }
public int Age {
get; set; }
}
class Program
{
static void Main()
{
// 创建一个Person对象
Person person = new Person {
Name = "John", Age = 30 };
// 使用JsonConvert.SerializeObject方法将对象序列化为JSON字符串
string json = JsonConvert.SerializeObject(person);
// 输出JSON字符串
Console.WriteLine(json);
// 输出: {"Name":"John","Age":30}
}
}
反序列化(将JSON字符串转换为对象)
using Newtonsoft.Json;
using System;
public class Person
{
public string Name {
get; set; }
public int Age {
get; set; }
}
class Program
{
static void Main()
{
// JSON字符串
string json = "{\"Name\":\"John\",\"Age\":30}";
// 使用JsonConvert.DeserializeObject方法将JSON字符串反序列化为Person对象
Person person = JsonConvert.DeserializeObject<Person>(json);
// 输出对象的属性
Console.WriteLine($"Name: {
person.Name}, Age: {
person.Age}");
// 输出: Name: John, Age: 30
}
}
3. 格式化JSON输出
可以使用Formatting.Indented
来格式化JSON输出,使其更易读。
using Newtonsoft.Json;
using System;
public class Person
{
public string Name {
get; set; }
public int Age {
get; set; }
}
class Program
{
static void Main()
{
// 创建一个Person对象
Person person = new Person {
Name = "John", Age = 30 };
// 使用JsonConvert.SerializeObject方法将对象序列化为JSON字符串,并格式化输出
string json = JsonConvert.SerializeObject(person, Formatting.Indented);