将一些JSON反序列化为自定义C#对象时遇到麻烦。我以为,如果我构造一个看起来像JSON的类,它将知道要使用哪些海关对象类(显示和范围),但是显然我做错了。反序列化调用后,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));
答案 0 :(得分:0)
啊,我的坏。我缺少将类重命名为CDisplay和CRange。
public class Param
{
...
public CDisplay Display { get; set; }
public CRange Range { get; set;
}