JSON:DateTimes反序列化格式不一致

时间:2015-08-03 11:49:23

标签: c# .net json

使用C#读取json文件时出现了一些奇怪的行为。

我的json文件包含一些日期:

 "status": "Open",
 "priority": "Medium",
 "created": "2013-11-13T18:40:36.000+0000",
 "updated": "2014-1-2T10:45:17.000+0000",
 "duedate": "2013-12-31T0:0:0.000+0000",

我通过

读取文件
string json = File.ReadAllText(fileName)

// the following line does not matter (just for reference)
// issue already exists when viewing the json string variable above
JObject mappedObj = JObject.Parse(File.ReadAllText(fileName));

我的json字符串现在包含

 "status": "Open",
 "priority": "Medium",
 "created": "11/13/2013 19:40:36",
 "updated": "2014-1-2T10:45:17.000+0000",
 "duedate": "2013-12-31T0:0:0.000+0000",

这只是“创建”字段,表现不像它应该的那样。

有趣的部分:这不仅发生在反序列化之后,错误的日期显示,当我使用.net调试json-viewer(不使用text-viewer!)查看“json”字符串时。 如您所见,我只显示从文件中读取的内容。

有什么想法吗?有趣的是,代码在重新安装Windows之前有效。也许这是一些本地化问题。我希望我的代码无论如何都要独立于本地化。 任何建议都将受到高度赞赏:)

后续-问题

好的,现在很明显,未转换的日期不符合ISO标准。

您知道是否有办法避免解析器将字符串识别为日期? 如果我想再次序列化,它会不断输出“13.11.2013”​​字符串而不是我需要的ISO表示法。

我用

JsonConvert.SerializeObject(inforData, new IsoDateTimeConverter())

0 个答案:

没有答案