Newtonsoft JSON是否有可能用注释标记某个类,从而使该类类型的属性永远不会序列化。当然,可以将[JsonIgnore]
属性置于所有属性之上。但有趣的是,类似的事情是否可能在课堂上发生。
每个自定义类型都可以选择序列化方式。
例如,用[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
时遇到问题。你不认为这不是一个好主意吗?