我们已经定义了一些 JSON 文档,它们用作文档数据库中的存储格式,也可以通过服务总线发送。
这些使用 JSON.NET 反序列化为具体的类。我现在想修改一个现有的属性来保存额外的数据(例如,目前我的一个类包含一个字符串数组,但现在我希望它是一个包含字符串和时间戳的类的数组。)
但是,我仍然需要能够反序列化旧的文档格式。有没有办法,也许是使用 custom JsonConverter
,在旧文档格式出现时无缝转换为新文档格式?在序列化时,我希望所有文档都以新格式保存。
由于我被要求添加技术细节,这里有一个人为的例子供讨论:
public class Document
{
public string[] Array { get; set; }
}
这升级为:
public class Document
{
public class Entry
{
public string Value { get; set; }
public DateTime Timestamp { get; set; }
}
public Entry[] Array { get; set; }
}
在此示例中,我们假设传入的任何旧格式文档的时间戳都应为DateTime.UtcNow
.