Десериализовать JSON на основе полей в .Net (C #)
Я пишу приложение, которое получаетJson
список объектов вроде этого:
[
{
"ObjectType": "apple",
"ObjectSize": 35,
"ObjectCost": 4,
"ObjectTaste": "good",
"ObjectColor": "golden"
},
{
"ObjectType": "books",
"ObjectSize": 53,
"ObjectCost": 7,
"Pages": 100
},
{
"ObjectType": "melon",
"ObjectSize": 35,
"ObjectTaste": "good",
"ObjectCost": 5
},
{
"ObjectType": "apple",
"ObjectSize": 29,
"ObjectCost": 8,
"ObjectTaste": "almost good",
"ObjectColor": "red"
}
]
Я хочу сделать базовый классItemToSell
(размер, стоимость), и извлечь из него Apple, дыни и книги, а затем сделать десериализацию на основе "ObjectType
"поле для любого класса, который он подходит. Я хочу, чтобы он составил списокItemToSell
объекты, каждый объект Яблоко, Дыня или Книга.
Как я мог сделать это в .Net?
Заранее спасибо :)
РЕДАКТИРОВАТЬ: я знаю, как десериализовать его в большом классе со всеми полями, которые он может когда-либо содержать, например:Base(ObjectType,ObjectSize,ObjectCost,ObjectColor,Pages)
, Но я хочу, чтобы он различал классы поObjectType
поэтому у меня не будет никаких полезных полей, таких как поле Страницы для каждого элемента книги илиObjectTaste
за каждую книгу.