在 C# 中解析 JSON 为匿名类型的 List:详细指南

在 C# 中解析 JSON 为匿名类型的 List:详细指南

编码文章call10242025-06-23 14:48:343A+A-

解析 JSON 数据是现代应用程序开发中常见且重要的任务之一。在 C# 中,使用 Newtonsoft.Json 库可以方便地将 JSON 数据解析并映射到我们所需要的对象类型。本文将详细介绍如何将 JSON 数组解析到匿名类型的 List<T> 中。

准备工作

在开始之前,请确保你的开发环境已安装 .NET Core SDK 或 .NET Framework,并且已配置 Visual Studio 或 VS Code 等开发工具。

安装 Newtonsoft.Json 库

Newtonsoft.Json 是 C# 最流行的 JSON 处理库之一,我们可以使用它来处理 JSON 数据。在命令行中运行以下命令以在项目中添加该包:

dotnet add package Newtonsoft.Json

或者,通过 Visual Studio 的 NuGet 包管理器搜索 Newtonsoft.Json 并安装。

编写代码

接下来,我们将编写示例代码以演示如何解析 JSON 数据到匿名类型的 List<T> 中。

  1. 创建一个新的控制台应用程序:
dotnet new console -n JsonParseDemo
cd JsonParseDemo
  1. 打开 Program.cs 文件,并添加以下代码:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 1. 定义 JSON 字符串
        string json = @"[{""id"":0,""as"":"""",""rb"":""IT"",""st"":""完成"",""pct"":""2023-10-16"",""act"":""2023-10-16""}]";

        // 2. 创建匿名类型数组作为模板
        var anonymousTypeList = new[]
        {
            new
            {
                id = 0,
                @as = string.Empty,
                rb = string.Empty,
                st = string.Empty,
                pct = string.Empty,
                act = string.Empty
            }
        };

        // 3. 使用 JsonConvert.DeserializeAnonymousType 解析 JSON 字符串
        var list = JsonConvert.DeserializeAnonymousType(json, anonymousTypeList);

        // 4. 遍历解析后的列表,并打印每个项目的属性
        foreach (var item in list)
        {
            Console.WriteLine(#34;id: {item.id}, as: {item.@as}, rb: {item.rb}, st: {item.st}, pct: {item.pct}, act: {item.act}");
        }
    }
}

代码详解

1. 定义 JSON 字符串

我们首先定义一个包含 JSON 数据的字符串,其中每个对象包含多个属性:

string json = @"[{""id"":0,""as"":"""",""rb"":""IT"",""st"":""完成"",""pct"":""2023-10-16"",""act"":""2023-10-16""}]";

2. 创建匿名类型数组作为模板

为了解析 JSON 字符串到匿名类型列表,我们定义一个匿名类型数组的模板:

var anonymousTypeList = new[]
{
    new
    {
        id = 0,
        @as = string.Empty,
        rb = string.Empty,
        st = string.Empty,
        pct = string.Empty,
        act = string.Empty
    }
};

匿名类型语法使用花括号 {} 来定义字段和类型。我们使用 string.Empty 作为字符串字段的默认值。

3. 使用 JsonConvert.DeserializeAnonymousType 解析 JSON 字符串


JsonConvert.DeserializeAnonymousType 方法可以将 JSON 字符串解析为匿名类型的实例:

var list = JsonConvert.DeserializeAnonymousType(json, anonymousTypeList);

4. 遍历解析后的列表,并打印每个项目的属性

最后,我们遍历解析后的列表,并打印每个项目的属性:

foreach (var item in list)
{
    Console.WriteLine(#34;id: {item.id}, as: {item.@as}, rb: {item.rb}, st: {item.st}, pct: {item.pct}, act: {item.act}");
}

运行程序

保存完上述代码后,在命令行中运行以下命令以编译和执行程序:

总结

通过本文的示例,我们学习了如何使用 Newtonsoft.Json 库将 JSON 数据解析为匿名类型的 List<T>。这种方法特别适用于处理动态 JSON 数据模型,而无需创建大量的专门类型类。

希望本文对你理解 C# 中的 JSON 解析有所帮助,如果有任何问题或需要进一步的讲解,请随时留言讨论。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4