为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
冉冉说 2021-06-30 09:47:22
语境该行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变量和正确的值。我怎样才能完成这个任务?
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

问题是JsonConvert.DeserializeObject看起来它想要一个 JSON对象而不是任何 JSON。(很遗憾SerializeObject并不总是产生一个对象,但是......)

你可以这样解析:

DateTime dt = new JValue("2018-05-25T07:59:27.2175427+02:00").ToObject<DateTime>();

或者(等效地?我不完全确定):

DateTime dt = (DateTime) new JValue("2018-05-25T07:59:27.2175427+02:00");

可能有更好的方法,但这至少有效。


查看完整回答
反对 回复 2021-07-03
  • 2 回答
  • 0 关注
  • 258 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信