我正在尝试使用GeoJSON库反序列化JSON.net。每个特征的几何组件可以是基于"类型"的许多不同类型。属性值。
我需要将此GeoJSON的几何组件反序列化为几何对象模型,如下所示:
public abstract class Geometry { ... }
public class Point : Geometry { ... }
public class LineString : Geometry { ... }
public class Polygon : Geometry { ... }
因此基于"类型"的值属性,它将反序列化为相应的.net具体类型,但通过其基础Geometry类访问。
JSON.net库是否提供类似于WCF中的KnownTypeAttribute或XML序列化中的XmlElementAttribute,它允许我将JSON反序列化为具有一组已知派生类的基类?
答案 0 :(得分:4)
文档here显示了此示例:
[JsonObject(MemberSerialization.OptIn)]
public class Person
{
// "John Smith"
[JsonProperty]
public string Name { get; set; }
// "2000-12-15T22:11:03"
[JsonProperty]
[JsonConverter(typeof(IsoDateTimeConverter))]
public DateTime BirthDate { get; set; }
// new Date(976918263055)
[JsonProperty]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime LastModified { get; set; }
// not serialized
public string Department { get; set; }
}