我有一个JSON字符串,我需要一些帮助来反序列化它。 目前,我的结果始终为空。
var results = JsonConvert.DeserializeObject<Root>(json);
// result == null
我的JSON:
{"First":{"FirstData1":{"date":"2018-01-01","hint":""},
"FirstData2":{"date":"2018-01-06","hint":""}},
"Second":{"SecondData1":{"date":"2018-01-01","hint":""},
"SecondData2":{"date":"2018-01-06","hint":""}}}....
只有在最后一个节点上才有实际的属性命名...
MyObjects
public class Root
{
public IEnumerable<TempModelRoot> Value{ get; set; }
}
public class TempModelRoot
{
[JsonProperty("Key")]
public string Key { get; set; }
[JsonProperty("Value")]
public List<TempModelChild> Value { get; set; }
}
public class TempModelChild
{
[JsonProperty("Key")]
public string Key { get; set; }
[JsonProperty("Value")]
public TempModelInfo Value { get; set; }
}
public class TempModelInfo
{
[JsonProperty("date")]
public string date { get; set; }
[JsonProperty("hint")]
public string hint { get; set; }
}
答案 0 :(得分:1)
您很可能在尝试反序列化的模型与基于json本身的实际预期模型之间不匹配。
解决此问题的一种简单方法是使用Quick Types Model Generator (未附加功能)之类的工具,该工具可让您根据提供的json文件生成C#模型。
生成后,您可以将模型与生成的模型进行比较和/或替换。 找出并解决模型问题。
答案 1 :(得分:1)