首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails ActiveRecord BigNum to JSON

Rails ActiveRecord BigNum to JSON
EN

Stack Overflow用户
提问于 2009-07-28 20:56:12
回答 1查看 559关注 0票数 1

我正在序列化rails 2.3.2JSON中的ActiveRecord模型,并注意到JSON值被序列化为没有引号的to_json,然而,BigNum使用64位来表示大数,并且只有~52(?)在这些位中,整数部分可用,其余的用于指数。

所以我的17位数字变成了四舍五入。

在Firebug控制台中尝试以下操作:

代码语言:javascript
复制
console.log(123456789012345678)

因此,我认为json编码器应该足够智能,能够引用太大而javascript引擎无法处理的数字。我如何修复rails才能做到这一点呢?或者,有没有办法覆盖模型上单个属性的编码(我不想在其他地方使用to_s )?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2009-07-28 21:54:44

我根据另一个帖子提出了一个可行的解决方案:Array of ActiveRecords to JSON

代码语言:javascript
复制
  def to_json(options = {})
     hash = Serializer.new(self, options).serializable_record.reject {|key, value| value.nil? || key == "big_num_field"}
     hash[:big_num_field] = big_num_field.to_s
     hash.to_json
   end

这仍然不是最优的,因为我更愿意让序列化程序自动处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1196685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档