我已经使用旧版本的JSON.Net(4.0r4)一段时间了,刚刚更新到最新版本(4.5r11).我注意到日期过去的格式如下:
2013-03-20T09:00:00.119Z
但现在是:
2013-03-20T09:00:00.119
最后Z缺失了.根据维基百科:
如果时间是UTC,则在没有空格的时间之后直接添加Z.
这打破了很多我的JavaScript代码,因为我有一个方法将它转换为一个DateTime对象并且它期望Z.我可以通过改变我用来做这个的功能来修复它我已经发现我可以设置DateTimeZoneHandling为DateTimeZoneHandling.Utc但这意味着我将不得不在多个项目中更改很多C#代码.
我只是想知道为什么这会改变.
谢谢...
我有一个带小数属性的类,我正在使用JSON.NET进行序列化和反序列化.我遇到的问题是,如果说十进制值是100000000000023063.0,当我反序列化它转换为100000000000023000.我检查了JSON并且它肯定记录为100000000000023063.0.
我调查了一下
decimal.Parse("100000000000023063.0")
Run Code Online (Sandbox Code Playgroud)
=
100000000000023063.0
Run Code Online (Sandbox Code Playgroud)
但
var d = (decimal)100000000000023063.0
Run Code Online (Sandbox Code Playgroud)
=
100000000000023000
Run Code Online (Sandbox Code Playgroud)
我可以通过存储为字符串并具有decimal.Parse()的属性来解决这个问题,但有谁知道为什么会发生这种情况?