亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

反序列化具有多列(包括日期時間屬性)的 JSON 對象

反序列化具有多列(包括日期時間屬性)的 JSON 對象

C#
波斯汪 2023-09-16 15:16:11
在 C# 項目中,我正在檢索一個 Event 對象,其中包含 subject (string)、location (string)、start_time (datetime)、end_time (datetime)、all_day_event (boolean) 和 calendar_id (int) 屬性,作為 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 object、Deserialize multiple json into object c#建議,但它們沒有幫助。那么有什么方法可以正確獲取這些時間值嗎?太感謝了。
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您需要裝飾具有不同命名約定的屬性。請記住,Json.Net 會自動將 JSON 的SnakeCase映射到 C# 的PascalCase屬性。但是,如果你有snake_case或其他東西,你需要裝飾屬性。


public class Event?

{

? ? ? ? public int Id { get; set; }


? ? ? ? public string Subject { get; set; }


? ? ? ? public string Location { get; set; }


? ? ? ? [JsonProperty("start_time")]

? ? ? ? public DateTime StartTime { get; set; }


? ? ? ? [JsonProperty("end_time")]

? ? ? ? public DateTime EndTime { get; set; }


? ? ? ? [JsonProperty("all_day_event")]

? ? ? ? public bool AllDayEvent { get; set; }


? ? ? ? [JsonProperty("calendar_id")]

? ? ? ? public int CalendarId { get; set; }

? ? }

另外,你可以設置全局命名策略,以避免修飾你的模型的所有屬性,例如如果JSON遵循snake_case


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號