JsonConverter可以决定类型如何被序列化或反序列化。
接口属性被反序列化时,会抛出异常,因为接口没有构造函数。
JsonConvert.DeserializeObject<IVehicle>("Json字符串");
JsonConvert.DeserializeObject<List<IVehicle>>("Json字符串");
JsonConvert.DeserializeObject<Worker>("Json字符串");
class Worker
{
public IVehicle Vehicle { get; set; }
}
基类属性反序列化时,如果Json表示的是它的派生类,那么基类属性的引用指向的是基类实例而不是派生类实例。这会丢失Json中的派生类才具有的属性的信息。
JsonConvert.DeserializeObject<Person>("表示Police的Json字符串");
上述的返回值是Person实例而不是Police类型的实例,在反序列化时,Person类不具备Json中的警号,薪资等属性会被忽略。
JsonConverter的作用
JsonConveter的作用时机
标签:DeserializeObject,Json,基类,字符串,序列化,属性 From: https://www.cnblogs.com/LiuwayLi/p/17488123.html