【发布时间】:2021-02-25 18:16:15
【问题描述】:
我正在使用 JsonSerializer ContractResolver 来忽略空列表。我想再添加一个条件来忽略 具有特定名称的属性
var serilaizeJson = JsonConvert.SerializeObject(result, Formatting.None,
new JsonSerializerSettings
{
ContractResolver = SerializeContractResolver.Instance
});
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
JsonProperty property = base.CreateProperty(member, memberSerialization);
if (property.PropertyType != typeof(string))
{
if (property.PropertyType.GetInterface(nameof(IEnumerable)) != null)
property.ShouldSerialize =
instance => (instance?.GetType().GetProperty(property.PropertyName).GetValue(instance) as IEnumerable<object>)?.Count() > 0 && .;
}
return property;
}
是否有任何方法可以将检查与当前检查合并,如果属性名称为 CreatedOn 则忽略它。它是一种字符串值。
【问题讨论】:
-
忽略具有特定名称的属性是什么意思?您的意思是忽略具有特定名称的属性?你能分享一个minimal reproducible example 显示你想要序列化的类型,以及你想要使用你的合约解析器的结果吗?
标签: c# json json.net dynamic-programming nsjsonserialization