C#.Net Core 3.1 System.Text.Json在序列化中忽略空集合 [英] C# .Net Core 3.1 System.Text.Json Ignore empty collection in serialization

查看:0
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆