У меня возникла проблема десериализации некоторой строки JSON обратно в .net-объекты. У меня есть класс контейнера, который содержит некоторую информацию от внешнего и есть полевой вызов ClassType
, который определяет тип информации, а фактический контент находится в другом свойстве, которое в настоящее время может быть чем угодно, поэтому мы определяем его как тип объекта.deserialize json в .net-объект с помощью json.net
Ниже приведено определение класса .net, которое помогает понять проблему.
class ClassOne
{
public string Name { get; set; }
public int Age { get; set; }
}
class ClassTwo
{
public string AddressLine { get; set; }
public string AddressLine2 { get; set; }
}
class ClassThree
{
public string Country { get; set; }
public string Passport { get; set; }
}
class ContainerClass
{
public string ClassType { get; set; }
public object ClassContent { get; set; }
}
При получении информации от внешнего в формате JSON это будет что-то вроде:
{"ClassType":"Class1","ClassContent":{"Name":"James","Age":2}}
Я использую библиотеку Newtonsoft Json.NET десериализовать строку JSON. Похоже, что функция десериализации по умолчанию будет просто десериализовать это в Newtonsoft.Json.Linq.JContainer
. Мне просто интересно, как я могу написать какой-нибудь конвертер для десериализации ClassContent
на основе определения ClassType
. Любой образец кода будет высоко оценен.