.NET怎么将List集合转换为JSON字符串

来源:这里教程网 时间:2026-02-21 17:30:28 作者:

.NET 中将 List 集合转换为 JSON 字符串非常简单,主要使用 System.Text.Json(.NET Core 3.0+ 推荐)或 Newtonsoft.Json(第三方库,也叫 Json.NET)来实现。以下是两种常用方法:

使用 System.Text.Json(原生支持)

这是 .NET 5 及以上版本推荐的方式,无需额外安装包(.NET Core 3.0+ 默认包含)。

示例代码:

using System;
using System.Collections.Generic;
using System.Text.Json;
var list = new List<string> { "apple", "banana", "orange" };
string jsonString = JsonSerializer.Serialize(list);
Console.WriteLine(jsonString); // 输出:["apple","banana","orange"]

如果是对象集合:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
var people = new List<Person>
{
    new Person { Name = "Alice", Age = 30 },
    new Person { Name = "Bob", Age = 25 }
};
string json = JsonSerializer.Serialize(people);
Console.WriteLine(json); // 输出:[{"Name":"Alice","Age":30},{"Name":"Bob","Age":25}]

使用 Newtonsoft.Json(最流行第三方库)

需要先通过 NuGet 安装:Install-Package Newtonsoft.Json

示例代码:

<code>using Newtonsoft.Json;
var list = new List<int> { 1, 2, 3, 4, 5 };
string jsonString = JsonConvert.SerializeObject(list);
Console.WriteLine(jsonString); // 输出:[1,2,3,4,5]

对象集合同样适用:

string json = JsonConvert.SerializeObject(people);
Console.WriteLine(json);

注意事项

确保集合中的类型是可序列化的(如基本类型、POCO 类) 如果属性有私有字段或需要忽略某些字段,可以使用 [JsonIgnore] 或 [JsonProperty] System.Text.Json 默认区分大小写且只序列化 public 属性,行为更严格 如需格式化输出,可传入选项:JsonSerializer.Serialize(list, new JsonSerializerOptions { WriteIndented = true }) 基本上就这些,选择哪种方式取决于你的项目环境和需求。新项目建议优先使用 System.Text.Json。

相关推荐