C#.Net Core 3.1 System.Text.Json在序列化中忽略空集合 [英] C# .Net Core 3.1 System.Text.Json Ignore empty collection in serialization
本文介绍了C#.Net Core 3.1 System.Text.Json在序列化中忽略空集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用Newtonsoft,我们有一个用于忽略空集合的自定义解析器。在.Net core 3.1中,新的Syst.ext.json是否有相同的配置
推荐答案
Conditionally ignore a property摘自.NET5官方How to migrate from Newtonsoft.Json to System.Text.Json2020年12月14日:
System.Text.Json提供了以下在序列化时忽略属性或字段的方法:
- [JsonIgnore]属性(...)。
- IgnoreReadOnlyProperties全局选项(...)。
- (...)JsonSerializerOptions.IgnoreReadOnlyFields全局(...)
- 通过DefaultIgnoreCondition全局选项,您可以忽略具有默认值的所有值类型属性,或忽略具有空值的所有引用类型属性。
这些选项不允许您:
- 根据运行时计算的任意条件忽略选定属性。
对于该功能,您可以编写一个定制的转换器。下面是一个示例POCO和它的一个自定义转换器,说明了这种方法:
(下面是一个类型的自定义转换器示例)
请注意,此转换器需要是包含集合属性的类型的转换器,而不是而不是集合类型的转换器(请参见我的第二个答案)。
这篇关于C#.Net Core 3.1 System.Text.Json在序列化中忽略空集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文