如果有一种优雅的方法可以避免使用Json.net序列化空值属性,我会徘徊。这个link显示了两种方式进行条件序列化,但它们都不是我想要的。第一种方法接近我想要但不满意的方法。例如,您应该为每个属性创建一个方法(ShouldSerialize +'property-name'())。这不是一个优雅的解决方案,因为所有方法都必须是公开的,并且可见。所以如果你有20个属性意味着你应该有20个方法或者有更好的方法吗? 最好的解决方案是让一个方法让我们说 OnSerialize(对象属性,对象值);当对象的属性即将被序列化时调用。请帮忙......
答案 0 :(得分:0)
此示例将对象序列化为JSON,并将NullValueHandling设置为Ignore,以便具有默认值的属性不包含在JSON结果中。
string jsonIgnoreNullValues = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});