У нас есть уже определенные JSON-документы, которые используются в качестве формата хранения в базе данных документов, а также отправляются по служебной шине.Обновление документов JSON с помощью JSON.NET
Эти десериализуются в конкретные классы с использованием JSON.NET. Теперь я хотел бы изменить существующее свойство для хранения дополнительных данных (например, в настоящее время один из моих классов содержит массив строк, но теперь я хотел бы, чтобы он был массивом класса, содержащего строку плюс временную метку).
Однако мне все же нужно десериализовать старый формат документа. Есть ли способ, возможно, с пользовательским 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
.
Хотя интересно, вопрос не хватает технических деталей, таких как структура JSON (старый и новый) –
@ AdrianCarneiro Это потому, что это вопрос общего назначения. Это не имеет никакого отношения к конкретной структуре JSON; У меня, должно быть, 4-5 форматов документов, которые необходимо обновить на данный момент. –
Блестящий вопрос. – Jonathan