Newtonsoft JSON是否有可能使用注释标记某个类,以便从不序列化此类类型的属性。当然可以将[JsonIgnore]
属性放在所有属性之上。但是,在类级别上是否有类似的东西会很有趣。
答案 0 :(得分:2)
每种自定义类型都可以选择如何序列化。
例如,使用[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
标记类型,然后您必须使用[JsonProperty]
标记某些内容,否则将序列化。因此,即使自定义类型的属性是可序列化的,该类型也不会产生任何内容({}
)来序列化:
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()));
将产生
{"试验":"试验"" B":{}}"
使用这种方法,您将无法序列化B
。哪个不是很聪明的主意,你不觉得吗?