我正在使用 Json.NET 4.5 版,我对 Json.Net 很陌生。
问题:我需要知道如何在 Json.NET 中支持类的版本控制。
示例:如下例所示,我在第二个版本中有 EmployeeDetail 类,Name 属性分为 FirstName 和 LastName;并且单个地址成为地址。
我尝试使用自定义 JsonConverter 在反序列化对象时提供向后兼容性,但是在使用多个转换器时遇到了问题,因为我已经在使用通用的自定义创建 JsonConverter,它将接口映射到 ConcreteType,如下例所示。
// Employee Detail Version 1.0
[JsonObject()]
public class EmployeeDetail
{
public EmployeeDetail()
{
}
public EmployeeDetail( string name )
{
Name = name;
}
[JsonProperty]
public string Name { get; set; }
[JsonConverterAttribute( typeof( CustomObjectCreationConverter<iAddress, Address> ) )]
public iAddress Address { get; set; }
}
// Employee Detail Version 2.0
[JsonObject()]
public class EmployeeDetail
{
public EmployeeDetail()
{
}
public EmployeeDetail( string firstName, string lastName )
{
FirstName = firstName;
LastName = lastName;
}
[JsonProperty]
public string FirstName { get; set; }
[JsonProperty]
public string LastName { get; set; }
[JsonConverterAttribute( typeof( CustomArrayCreationConverter<iAddress, Address> ) )]
public IEnumerable<iAddress> Addresses { get; set; }
}