Возникли проблемы с десериализацией некоторого JSON в пользовательские объекты C#. Я думал, что если я создам класс, похожий на JSON, он будет знать, какие классы таможенных объектов использовать (Display и Range), но, очевидно, я что-то делаю не так. После вызова десериализации значения Display и Range равны нулю. Думаю, мне не хватает некоторых оберток, но я не знаю, как их настроить.
Вот JSON только одного параметра:
{
"Params": [
{ // This is a "Param" object
"Type": "myType",
"EnumCode": "ZZZ",
"Display": {
"Name": "myName",
"Description": "myDescription"
}
"Range": {
"Default": "1",
"Values": [
"1",
"2"
]
}
}
]
}
И это мои занятия:
public class Display
{
public string Name { get; set; }
public string Description { get; set; }
}
public class Range
{
public string Default { get; set; }
public List<string> Values { get; set; }
}
public class Param
{
public string Type { get; set; }
public string EnumCode { get; set; }
public Display UIDisplay { get; set; }
public Range RangeValues { get; set; }
}
И я пытаюсь десериализовать JSON с помощью этой оболочки:
public class ParamsJSON
{
public List<Param> Params;
}
Вот так:
var j = JsonConvert.DeserializeObject<TuneParameterJSON>(File.ReadAllText(paramsFilePath));
Ах, моя беда. Мне не хватало переименования классов в CDisplay и CRange.
public class Param
{
...
public CDisplay Display { get; set; }
public CRange Range { get; set;
}