应当将JSON数字视为bigdecimal

  • 本文关键字:bigdecimal 数字 JSON ruby
  • 更新时间 :
  • 英文 :


有一个JSON,其中包含具有长部部分部分的数字:

json = <<-JSON
{
  "number": 12.12345678910111213141516
}
JSON

,但是当使JSON.parse数字被截断时:

require 'json'
JSON.parse(json)
#=> {"number"=>12.123456789101112}

,但对我来说,拥有整数非常重要。

有什么方法可以保存分数部分并防止解析JSON时截断?

一个人可能会使用任何更复杂的解析器,例如 Oj

main ▶ Oj.load '{"number": 12.12345678910111213141516123456789123456789}'
#⇒{
#  "number" => 12.12345678910111213141516123456789123456789
# }
main ▶ Oj.load('{"number": 12.12345678910111213141516}')["number"].class
#⇒ BigDecimal < Numeric

最新更新