【发布时间】:2018-05-25 06:15:00
【问题描述】:
上下文
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 变量和正确的值。我怎样才能完成这项任务?
【问题讨论】:
-
如果序列化可以使用默认值,那么反序列化应该使用相同的默认值
-
必须引用JSON 字符串文字,所以你需要做
JsonConvert.DeserializeObject<DateTime>("\"2018-05-25T07:59:27.2175427+02:00\"")。很容易将 c# 字符串文字(不是 JSON 的 部分)的引号与需要包含在 JSON 字符串中的引号混淆。见dotnetfiddle.net/TgQ2cl -
谢谢,我试过了。这是一个真实的答案。你应该发布它。 (现在我记得,曾经我学到了同样的一课:-),但似乎重复是所有知识的母亲。)