1

我正在使用 .NET MVC4 中包含的 OData beta 实现,我遇到了一个奇怪的问题:所有long值都被序列化为 JSON 字符串,而不是像ints 和floats 一样,被序列化为常规数字。

由于 Javascript应该支持 Int64值,有没有办法只为long值添加自定义 OData 序列化方法?

4

1 回答 1

2

请注意,JSON 表示它至少应该是一个 64 位双精度数 - 类似于 C++ 中的 double。double 的问题在于它的存储方式并不意味着它可以表示 64 位整数的全部范围——这就是 long 的含义。所以简而言之,当由 JSON 兼容的解析器解析时,并非所有长的有效值都可以写为 JSON 数字而不会损失精度。

正是出于这个原因,OData 总是将长值写入字符串。

于 2013-09-17T13:37:49.467 回答