如何将List<Model>转换为自定义JSON?ASP.NET Core新手求助
解决List转JSON字符串的问题
看起来你已经走了大部分流程啦,只是最后一步的JSON序列化设置没写完对吧?我来帮你补全并梳理正确的做法:
1. 先确认依赖包是否安装
你用到的JsonConvert来自Newtonsoft.Json(也就是大家常说的Json.NET),如果项目还没安装这个包,得先补上:
- 用NuGet包管理器搜索安装
Newtonsoft.Json - 或者用.NET CLI命令:
dotnet add package Newtonsoft.Json
2. 规范你的模型与序列化代码
你的模型定义没问题,我帮你补全完整的序列化逻辑:
模型代码(可以加上public修饰符让访问权限更清晰)
public class Developers { public int Id { get; set; } public string Name { get; set; } }
完整的List初始化与序列化代码
// 初始化List并添加数据 List<Developers> list = new List<Developers>(); list.Add(new Developers() { Id = 1, Name = "Senura" }); // 可以多添加一条测试数据 list.Add(new Developers() { Id = 2, Name = "Alice" }); // 完成JSON序列化,处理空值并生成字符串 var json = JsonConvert.SerializeObject( list, Formatting.None, // 如果想要易读的格式化JSON,改成Formatting.Indented new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore // 忽略模型中的空值属性,避免JSON里出现冗余的null字段 } );
3. 序列化结果示例
执行后json变量的内容会是:
[{"Id":1,"Name":"Senura"},{"Id":2,"Name":"Alice"}]
如果用Formatting.Indented,会生成格式化后的版本:
[ { "Id": 1, "Name": "Senura" }, { "Id": 2, "Name": "Alice" } ]
额外小提示:用.NET原生序列化方案
如果你不想依赖第三方包,.NET Core 3.0+自带了System.Text.Json,用法也很简单:
using System.Text.Json; var json = JsonSerializer.Serialize( list, new JsonSerializerOptions { IgnoreNullValues = true, WriteIndented = false // true对应格式化输出 } );
内容的提问来源于stack exchange,提问作者Senura Dissanayake
相关产品推荐
相关产品推荐

