.NET怎么将List集合转换为JSON字符串_List转JSON方法解析

.NET中将List转换为JSON字符串主要使用System.Text.Json或Newtonsoft.Json;前者是.NET Core 3.0+内置推荐方式,通过JsonSerializer.Serialize()方法实现,性能高、安全性好;后者需安装NuGet包,功能更强大,适用于复杂场景;两种方法均需确保对象属性具有公共getter/setter,且支持格式化输出与序列化选项配置。

.NET 中将 List 集合转换为 JSON 字符串非常常见,尤其在 Web API 开发或数据序列化场景中。实现方式主要依赖于内置的 System.Text.Json(.NET Core 3.0+ 推荐)或第三方库如 Newtonsoft.Json。下面详细介绍两种主流方法。

使用 System.Text.Json(.NET 内置)

.NET 5 及以上版本默认使用 System.Text.Json,无需额外安装包。它性能高、安全性好,是官方推荐方式。

  • 引入命名空间:using System.Text.Json;
  • 调用 JsonSerializer.Serialize() 方法即可将 List 转为 JSON 字符串

示例代码:

var list = new List { "apple", "banana", "orange" };
string json = JsonSerializer.Serialize(list);
// 输出:["apple","banana","orange"]

复杂对象示例:

public class Person 
{
    public string Name { get; set; }
    public int Age { get; set; }
}

var people = new List
{
    new Person { Name = "Alice", Age = 25 },
    new Person { Name = "Bob", Age = 30 }
};

string json = JsonSerializer.Serialize(people);
// 输出:[{"Name":"Alice","Age":25},{"Name":"Bob","Age":30}]

使用 Newtonsoft.Json(第三方库)

Newtonsoft.Json(又称 Json.NET)功能强大,兼容性好,广泛用于旧项目或需要高级功能的场景。需通过 NuGet 安装:Install-Package Newtonsoft.Json

  • 引入命名空间:using Newtonsoft.Json;
  • 使用 JsonConvert.SerializeObject() 方法

示例代码:

string json = JsonConvert.SerializeObject(list);
// 同样输出:["apple","banana","orange"]

string jsonPeople = JsonConvert.SerializeObject(people);
// 输出格式同上

该库支持更多选项,比如格式化输出、忽略空值等:

string json = JsonConvert.SerializeObject(people, Formatting.Indented);

注意事项与建议

选择哪种方式取决于项目环境:

  • 新项目推荐使用 System.Text.Json,性能更好,集成更紧密
  • 若需处理特殊类型(如 DataTableJObject)或复杂序列化规则,可继续使用 Newtonsoft.Json
  • 注意类属性必须是公开的 getter/setter,否则可能无法正确序列化
  • 日期格式、大小写转换等可通过序列化选项配置

基本上就这些。List 转 JSON 在 .NET 中非常直接,关键是选对工具并了解基本用法。