【发布时间】:2018-10-27 03:40:20
【问题描述】:
无法将某些 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));
【问题讨论】:
标签: json.net