使用 JsonConvert 反序列化单个 DateTime 对象

语境

该行JsonConvert.SerializeObject(DateTime.Now)给出以下结果:

“2018-05-25T07:59:27.2175427+02:00”

但是,当我尝试使用以下行将此 JSON 字符串反序列化为 DateTime 时: JsonConvert.DeserializeObject<DateTime>("2018-05-25T07:59:27.2175427+02:00")

它给出Newtonsoft.Json.JsonReaderException了以下消息:

解析值时遇到意外字符:2. 路径 '',第 1 行,位置 1。

到目前为止我还尝试过什么

“2018-05-25T07:59:27”

导致相同的异常

问题

有 JSON 序列化格式的日期时间字符串,我想要一个DateTime变量和正确的值。我怎样才能完成这个任务?


冉冉说
浏览 259回答 2
2回答

狐的传说

问题是JsonConvert.DeserializeObject看起来它想要一个 JSON对象而不是任何 JSON值。(很遗憾SerializeObject并不总是产生一个对象,但是......)你可以这样解析:DateTime&nbsp;dt&nbsp;=&nbsp;new&nbsp;JValue("2018-05-25T07:59:27.2175427+02:00").ToObject<DateTime>();或者(等效地?我不完全确定):DateTime&nbsp;dt&nbsp;=&nbsp;(DateTime)&nbsp;new&nbsp;JValue("2018-05-25T07:59:27.2175427+02:00");可能有更好的方法,但这至少有效。
打开App,查看更多内容
随时随地看视频慕课网APP