C# Json.net的条件属性序列化
我想知道是否有一种优雅的方法可以避免使用Json.net序列化空值属性。这显示了两种条件序列化方法,但这两种方法都不是我想要的。第一种方法接近我想要的,但不令人满意。例如,您应该为每个属性创建一个方法(ShouldSerialize+'property name'())。这不是一个优雅的解决方案,因为所有方法都必须是公共的,并且在那里是可见的。所以,如果你有20个属性,这意味着你应该有20个方法,或者有更好的方法吗?C# Json.net的条件属性序列化,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,我想知道是否有一种优雅的方法可以避免使用Json.net序列化空值属性。这显示了两种条件序列化方法,但这两种方法都不是我想要的。第一种方法接近我想要的,但不令人满意。例如,您应该为每个属性创建一个方法(ShouldSerialize+'property name'())。这不是一个优雅的解决方案,因为所有方法都必须是公共的,并且在那里是可见的。所以,如果你有20个属性,这意味着你应该有20个方法,或者有更好的方法吗? 最好的解决方案是使用一种方法,比如说序列化(对象属性、对象值);当对象的属性即
最好的解决方案是使用一种方法,比如说序列化(对象属性、对象值);当对象的属性即将序列化时调用。请帮助…查看中所示的示例 此示例将对象序列化为JSON,并将NullValueHandling设置为忽略,以便JSON结果中不包含具有默认值的属性
谢谢你的回复。这足以处理空值属性。这个实现的唯一问题是它返回字符串而不是json对象。我可以使用JObject.Parse()方法获取json对象。帮了大忙!
string jsonIgnoreNullValues = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});