MVC4 OData 将长字符串序列化为 JSON 字符串

本文关键字:字符串 序列化 JSON OData MVC4 | 更新日期: 2023-09-27 18:31:39

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

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

MVC4 OData 将长字符串序列化为 JSON 字符串

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

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