У меня есть JSON, который выглядит примерно так:
{
"definition": [
{
"inputs": [
{
"type": "xxx",
"prop1": 0,
"prop2": 1
},
{
"type": "yyy",
"a": 0,
"b": 1
}
]
}
]
}
Моя модель выглядит так:
class Configuration {
public Definition[] Definition {get; set;}
}
class Definition {
public Input[] Inputs {get; set;}
}
class Input {
[JsonConverter(typeof(ControlTypeConverter))]
public InputType Type {get; set;}
public IDictionary<string, object> Properties {get; set;}
}
Когда я десериализирую ввод, используя JsonConvert.DeserializeObject<Configuration>(input)
, где input
является вышеупомянутой строкой, я получаю то, что хочу, но свойство Properties
всегда равно null
.
То, что я хотел бы получить, - это то, что все несопоставленные свойства для объектов из input.definition[].inputs[]
складываются вProperties
свойство, как если бы я использовал .DeserializeObject<Dictionary<string, object>>
.
Есть ли лучший способ, чем написать собственный конвертер для Input
?