我想反序列化 jsonhere. http://feiertage.jarmedia.de/api/?jahr=%7Byear%7D
与此类似:
{
"BW": {
"Neujahrstag": {
"datum": "2017-01-01",
"hinweis": ""
},
"Heilige Drei K\u00f6nige": {
"datum": "2017-01-06",
"hinweis": ""
},
"Gr\u00fcndonnerstag": {
"datum": "2017-04-13",
"hinweis": "Gem\u00e4\u00df \u00a7 4 Abs. 3 des Feiertagsgesetzes von Baden-W\u00fcrttemberg[10] haben Sch\u00fcler am Gr\u00fcndonnerstag und am Reformationstag schulfrei. In der Regel legt das Kultusministerium die Ferientermine so fest, dass diese beiden Tage in die Osterferien bzw. in die Herbstferien fallen."
},
"Karfreitag": {
"datum": "2017-04-14",
"hinweis": ""
}
},
"BY": {
"Neujahrstag": {
"datum": "2017-01-01",
"hinweis": ""
},
"Heilige Drei K\u00f6nige": {
"datum": "2017-01-06",
"hinweis": ""
}
}
}
我想反序列化为:
public class Root
{
public State[] States { get; set; }
}
public class State
{
public Holiday[] Holidays { get; set; }
}
public class Holiday
{
public DateTime Date { get; set; }
public string Note { get; set; }
}
但由于属性名称不固定,我无法执行此操作。
我也尝试过使用 JObject.Parse() 但这对我没有多大帮助。
关于如何做到这一点有什么想法吗?
如果您将模型修改为:
public class Root : Dictionary<string, State> { }
public class State : Dictionary<string, Holiday> { }
public class Holiday {
[JsonProperty(PropertyName = "datum")]
public DateTime Date { get; set; }
[JsonProperty(PropertyName = "hinweis")]
public string Note { get; set; }
}
您可以使用以下方法反序列化:
var root = JsonConvert.DeserializeObject<Root>(str);
var firstBwHoliday = root["BW"]?["Neujahrstag"].Date;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)