C# 如何反序列化以日期为键的复杂JSON#
我要放弃这个了。 我需要反序列化以下Json:C# 如何反序列化以日期为键的复杂JSON#,c#,json,json.net,C#,Json,Json.net,我要放弃这个了。 我需要反序列化以下Json: json = "{ "2018-05-21": { "lastUpdate": "2018-05-21 01:00:05", "stops": [ { "stopId": 1838, "stopCode": "02" }, { "stopId": 1839, "stopCode":
json = "{
"2018-05-21": {
"lastUpdate": "2018-05-21 01:00:05",
"stops": [
{
"stopId": 1838,
"stopCode": "02"
}, {
"stopId": 1839,
"stopCode": "08"
}]}}";
var deserialized = JsonConvert.DeserializeObject<StopDate>(json); // null
问题是反序列化的变量为null
除了名字等方面的整体丑陋之外,我希望它能够启动并运行,只是为了一个好的开始。感谢所有帮助。将JSON转换为
字典
您可能希望将
LastUpdate
设置为DateTime
,而不是字符串
(如评论员建议的那样)
您可能希望将LastUpdate设置为日期时间,而不是字符串。@Nkosi,您的解决方案棒极了!非常感谢!谢谢你们两位的提示。
public class StopDate
{
public BusStop date { get; set; }
}
public class BusStop
{
public string LastUpdate { get; set; }
public Stop[] Stops { get; set; }
}
public class Stop
{
public int StopId { get; set; }
public string StopName { get; set; }
}
var deserialized = JsonConvert.DeserializeObject<Dictionary<DateTime, BusStop>>(json);
var deserialized = JsonConvert.DeserializeObject<Dictionary<string, BusStop>>(json);
BusStop busStop = deserialized["2018-05-21"];
public class BusStop {
public DateTime LastUpdate { get; set; }
public Stop[] Stops { get; set; }
}
public class Stop {
public int StopId { get; set; }
[JsonProperty("stopCode")]
public string StopName { get; set; }
}