将json数字反序列化为BigDecimal

问题描述 投票:1回答:1

有一个json包含长分数部分的数字:

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

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

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

但对我来说,掌握整数是至关重要的。

有没有办法保存小数部分并防止它在解析json时截断?

ruby
1个回答
2
投票

有人可能会使用更复杂的解析器,比如Oj

main ▶ Oj.load '{"number": 12.12345678910111213141516123456789123456789}'
#⇒{
#  "number" => 12.12345678910111213141516123456789123456789
# }
main ▶ Oj.load('{"number": 12.12345678910111213141516}')["number"].class
#⇒ BigDecimal < Numeric
© www.soinside.com 2019 - 2024. All rights reserved.