什么是 Newtonsoft.Json,为什么需要它?
Newtonsoft.Json(通常简称为 Json.NET)是 .NET 生态系统中用于处理 JSON 格式最流行且最强大的库。它为 C# 开发人员提供了高性能且灵活的工具,用于序列化(将 C# 对象转换为 JSON 字符串)和反序列化(将 JSON 字符串转换回 C# 对象)。
为什么需要它?JSON(JavaScript 对象表示法)已成为 Web 服务器与客户端之间数据交换、配置文件、API 以及数据库(例如 NoSQL)的事实标准。Newtonsoft.Json 允许您:
- 轻松与任何 REST API 集成 — 以 JSON 格式发送和接收数据。
- 处理配置 — 读取和写入 JSON 设置文件。
- 管理复杂结构 — 支持嵌套对象、数组、字典和动态类型。
- 自定义序列化过程 — 通过属性和设置(契约、属性忽略、日期格式化等)。
安装 Newtonsoft.Json
与 Python(使用 pip install)或 Node.js(npm install)不同,在 .NET 生态系统中使用 NuGet 包管理器。可以通过以下几种方式安装该库:
方法 1:通过包管理器控制台(Visual Studio)
打开 工具 → NuGet 包管理器 → 包管理器控制台 并执行命令:
Install-Package Newtonsoft.Json方法 2:通过 .NET CLI(跨平台)
如果您使用 .NET Core / .NET 5+ 并从终端操作,请执行:
dotnet add package Newtonsoft.Json方法 3:通过 Visual Studio 界面
右键单击项目 → “管理 NuGet 包” → 在“浏览”选项卡中找到 Newtonsoft.Json 并单击“安装”。
安装后,在代码文件开头添加指令 using Newtonsoft.Json;。
快速入门:代码示例
让我们通过一个简单示例立即了解该库的工作原理。假设我们有一个 Person 类:
using System;using Newtonsoft.Json;
public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }}
class Program{ static void Main() { // 1. 创建对象 var person = new Person { Name = "安娜", Age = 30, Email = "anna@example.com" };
// 2. 序列化:对象 -> JSON string json = JsonConvert.SerializeObject(person, Formatting.Indented); Console.WriteLine("序列化后的 JSON:"); Console.WriteLine(json);
// 3. 反序列化:JSON -> 对象 string jsonInput = @"{'Name':'伊万','Age':25,'Email':'ivan@example.com'}"; Person deserializedPerson = JsonConvert.DeserializeObject<Person>(jsonInput); Console.WriteLine($"反序列化后的对象: {deserializedPerson.Name}, {deserializedPerson.Age}"); }}输出:
序列化后的 JSON:{ "Name": "安娜", "Age": 30, "Email": "anna@example.com"}
反序列化后的对象: 伊万, 25Newtonsoft.Json 的主要方法和函数
以下是该库的 10 个关键方法/函数,包含详细说明和示例。
1. JsonConvert.SerializeObject()
功能: 将 .NET 对象转换为 JSON 字符串。
参数:
value(object) — 要序列化的对象。formatting(Nullable<Form