.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,无需额外安装包。它性能高、安全性好,是官方推荐方式。
示例代码:
var list = new List<string> { "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<Person> { 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
Find JSON Path Online
30
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
- 引入命名空间:
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,性能更好,集成更紧密
- 若需处理特殊类型(如
DataTable、JObject)或复杂序列化规则,可继续使用 Newtonsoft.Json - 注意类属性必须是公开的 getter/setter,否则可能无法正确序列化
- 日期格式、大小写转换等可通过序列化选项配置
基本上就这些。List 转 JSON 在 .NET 中非常直接,关键是选对工具并了解基本用法。
