我最近编写了很多代码,涉及使用Json.NET进行序列化,并且由于我序列化的数据的性质,有时并不是所有的属性都需要序列化,所以我做如下...
public int Foo { get; set; }
public bool ShouldSerializeFoo() => Foo > -1;
如果你有很多属性( ,在我的情况下我有超过100 ),这很好并且有效但涉及很多工作。
所以,我想知道是否可以选择编写这些方法。
答案 0 :(得分:3)
另一种选择是具体使用[DefaultValue(...)]
并使用DefaultValueHandling.Ignore
功能:
[DefaultValue(-1), JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
public int Foo { get; set; } = -1;
请注意,将值初始化为默认值非常重要 - 因此属性初始值设定项中的= -1;
。