使用Json.NET序列化对象时,忽略为null的属性
通过枚举NullValueHandling.Ignore,在使用Json.NET序列化对象为Json字符串时,可以忽略为null的属性,如下代码所示:
using Newtonsoft.Json; namespace Net8JsonNullValueDemo { class People { public required string Name { get; set; } public int? Age { get; set; } public string? Description { get; set; } public decimal? Salary { get; set; } } internal class Program { static void Main(string[] args) { //构造一个People对象,Description和Salary属性为null People people = new People() { Name = "王大锤, Jack Wang", Age = 16 }; //默认情况下,Json.NET会将为null的属性也序列化到Json字符串中 string jsonWithNullValues = JsonConvert.SerializeObject(people, Formatting.Indented); Console.WriteLine(jsonWithNullValues); Console.WriteLine(); Console.WriteLine(); //通过声明NullValueHandling.Ignore枚举,Json.NET会忽略掉为null的属性,序列化后的Json字符串中只有非null的属性 jsonWithNullValues = JsonConvert.SerializeObject(people, Formatting.Indented, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); Console.WriteLine(jsonWithNullValues); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Press any key to end..."); Console.ReadLine(); } } }
运行上面的代码,结果如下所示:
{ "Name": "王大锤, Jack Wang", "Age": 16, "Description": null, "Salary": null } { "Name": "王大锤, Jack Wang", "Age": 16 } Press any key to end...
可以参考下面这篇Json.NET的官方文档:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2019-01-23 ASP.NET Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程 (转载)
2019-01-23 SQL Server中比较末尾带有空格的字符串遇到的坑 (转载)
2019-01-23 ASP.NET Core如何设置请求超时时间
2019-01-23 ADO.NET的Connection Timeout和Command Timeout (转载)
2019-01-23 jquery ajax超时设置(转载)
2016-01-23 SQL SERVER: 合并相关操作(Union,Except,Intersect) - 转载