使用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())