是否有一个属性来阻止Jil序列化为null的属性?
在Newtonsoft它是:
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
对于整个对象,Options上的 excludeNulls 参数是你想要的(许多不同的选项配置都是预先调用的,像 Options.ExcludeNulls 这样的东西也可以) .
excludeNulls
Options.ExcludeNulls
您可以使用Conditional Serialization控制单个属性的序列化 . (我在原来的答案中忘了这个选项) .
例如
class ExampleClass { public string DontSerializeIfNull {get;set;} public string AlwaysSerialize {get;set;} public bool ShouldSerializeDontSerializeIfNull() { return DontSerializeIfNull != null; } } JSON.Serialize(new ExampleClass { DontSerializeIfNull = null, AlwaysSerialize = null }); // {"AlwaysSerialize":null} JSON.Serialize(new ExampleClass { DontSerializeIfNull = "foo", AlwaysSerialize = null }); // {"AlwaysSerialize":null,"DontSerializeIfNull":"foo"} JSON.Serialize(new ExampleClass { DontSerializeIfNull = null, AlwaysSerialize = "bar" }); // {"AlwaysSerialize":"bar"} JSON.Serialize(new ExampleClass { DontSerializeIfNull = "foo", AlwaysSerialize = "bar" }); // {"AlwaysSerialize":"bar","DontSerializeIfNull":"foo"}
Jil仅尊重 [DataMember] 上的 Name 选项 . 我想尊敬的 EmitDefaultValue 不会't be the hardest thing, but nobody'为它开了一个issue .
[DataMember]
Name
EmitDefaultValue
1 回答
对于整个对象,Options上的
excludeNulls
参数是你想要的(许多不同的选项配置都是预先调用的,像Options.ExcludeNulls
这样的东西也可以) .您可以使用Conditional Serialization控制单个属性的序列化 . (我在原来的答案中忘了这个选项) .
例如
Jil仅尊重
[DataMember]
上的Name
选项 . 我想尊敬的EmitDefaultValue
不会't be the hardest thing, but nobody'为它开了一个issue .