Newtonsoft JSON 是否有可能用注释标记某个类,这样此类类型的属性永远不会被序列化。当然可以将 [JsonIgnore]
属性放在所有属性之上。但有趣的是,类似的事情是否可以在类里面实现。
最佳答案
每个自定义类型都可以选择如何序列化。
例如,用 [JsonObject(MemberSerialization = MemberSerialization.OptIn)]
标记类型,然后你必须用 [JsonProperty]
标记一些东西,否则 nothing 将被序列化。因此,即使自定义类型的属性是可序列化的,该类型也可能不会产生任何 ({}
) 来序列化:
public class A
{
public string Test { get; set; } = "Test";
public B B { get; set; } = new B();
}
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class B
{
public string Foo { get; set; } = "Foo";
}
然后
Console.WriteLine(JsonConvert.SerializeObject(new A()));
会产生
{"Test":"Test","B":{}}"
使用这种方法,您将无法序列化 B
。哪个不是很聪明的主意,你不觉得吗?
关于c# - 从 Newtonsoft.Json 中的序列化中排除类的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34673758/