У меня есть структура json, которая выглядит примерно так:
"list":[
{
"type":"link",
"href":"http://google.com"
},
{
"type":"image",
"src":"http://google.com/logo.png"
},
{
"type":"text",
"text":"some text here"
},
]
Я хотел бы десериализовать это в список объектов, где каждый объект является подклассом базового класса. Каждый элемент в списке имеет разные свойства (href, src, text ), поэтому я не могу использовать один и тот же класс для достижения одного. Вместо этого я хотел бы три подкласса общего класса. Свойство type каждого элемента в списке JSON можно использовать, чтобы решить, какой подкласс использовать. Так, например, у меня могут быть следующие классы
public Item{
public string type {get; set;}
}
public LinkItem : Item {
public string href {get; set;}
}
public ImageItem : Item {
public string src {get; set;}
}
public TextItem : Item {
public string text {get; set;}
}
Есть какой-либо способ сделать это? Или есть лучший способ десериализовать список разнородных типов объектов?
Кстати, я использую json.net