【发布时间】:2019-12-27 17:04:59
【问题描述】:
在 C# 项目中,我正在检索一个 Event 对象,它具有主题(字符串)、位置(字符串)、start_time(日期时间)、end_time(日期时间)、all_day_event(布尔值)和 calendar_id(整数)属性,作为来自 Rest 请求的 JSON 响应。该请求从数据库中获取数据,并且 start_time 和 end_time 列的类型也是该数据库上的日期时间。但是我在获取日期时间类型值时遇到了麻烦。我得到这样的 JSON 对象:
[
{
"id": 1,
"subject": "Test Event 1",
"location": "Test Location",
"start_time": "2019-08-22 10:17:53",
"end_time": "2019-08-22 10:17:55",
"all_day_event": 0,
"calendar_id": 1
}
]
这是我的事件类:
public class Event {
public int Id { get; set; }
public string Subject { get; set; }
public string Location { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public bool AllDayEvent { get; set; }
public int CalendarId { get; set; }
}
这就是我反序列化 JSON 对象的方式:
events = JsonConvert.DeserializeObject<Event[]>(response.Content);
当我直接打印该 JSON 对象时,它会正确显示。但是在我反序列化它之后,时间值显示为 01/01/0001 12:00 AM。我已经搜索了一段时间。我找到了Deserialize Json Object - DateTime、Deserializing Import Io JSON with multiple objects、Deserialize multiple json into object c# 的建议,但它们没有帮助。那么有什么方法可以正确获取这些时间值吗?非常感谢。
【问题讨论】:
-
您需要将
[JsonProperty("start_time")]属性应用到StartTime属性