c#如何解析json

来源:这里教程网 时间:2026-02-21 16:51:11 作者:

如何使用 C# 解析 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于 Web 应用和 API。使用 C# 解析 JSON 非常简单,可以通过以下步骤实现:

1. 安装 JSON.NET

C# 中没有内置的 JSON 解析器,因此我们需要安装一个第三方库。推荐使用 Newtonsoft.Json 库,可以在 NuGet 包管理器中安装它:

<code>Install-Package Newtonsoft.Json</code>

2. 使用 JsonConvert 类

JsonConvert 类提供了各种方法来解析 JSON 数据。最常用的方法是 DeserializeObject 方法,它将 JSON 数据反序列化为指定类型的对象:

<code class="csharp">using Newtonsoft.Json;
string json = @"{ ""name"": ""John Doe"", ""age"": 30 }";
var person = JsonConvert.DeserializeObject<Person>(json);</code>

其中,Person 是一个定义了 nameage 属性的类:

<code class="csharp">public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}</code>

3. 反序列化动态对象

有时,我们不知道 JSON 数据的具体结构。这时,我们可以使用 DeserializeObject 方法来将 JSON 数据反序列化为一个动态对象:

<code class="csharp">dynamic data = JsonConvert.DeserializeObject<object>(json);
Console.WriteLine(data.name); // 输出 "John Doe"
Console.WriteLine(data.age); // 输出 30</code>

4. 序列化对象

除了反序列化 JSON 数据外,JsonConvert 类还允许我们序列化对象为 JSON 字符串:

<code class="csharp">string json = JsonConvert.SerializeObject(person);</code>

其他有用的方法

JsonConvert.Parse: 解析 JSON 字符串并将其转换为空白对象。 JsonConvert.ToString: 将对象转换为 JSON 字符串。 JsonConvert.DeserializeXmlNode: 将 JSON 数据反序列化为 XML 节点。 JsonConvert.SerializeXmlNode: 将 XML 节点序列化为 JSON 数据。

相关推荐