Rails to_json引用十进制值

时间:2019-05-12 14:28:35

标签: ruby-on-rails json

更新根据记录集构建的一组地理坐标

[{"point_lon"=>0.1307336132e3, "point_lat"=>-0.252978933e2, "title"=>"kata tjuta"}, 
{"point_lon"=>0.154984876e3, "point_lat"=>-0.17e2, "title"=>"error case"}, 
{"point_lon"=>0.1310369614747e3, "point_lat"=>-0.253455545e2, "title"=>"uluru"}]

具有正确的引号结构,但是对于JSON输入到javascript中,需要用冒号代替火箭。

不幸的是,通过JSON.generateto_json转换数组会导致引用十进制值并被javascript忽略

[{"point_lon":"130.7336132","point_lat":"-25.2978933","point_name":"kata tjuta"},
{"point_lon":"154.984876","point_lat":"-17.0","point_name":"error case"},
{"point_lon":"131.0369614747","point_lat":"-25.3455545","point_name":"uluru"}] 

如何在不引用小数的情况下转换该数组?

1 个答案:

答案 0 :(得分:1)

这是因为您使用decimal而不是float,所以rails用引号引起来以保留精度。您可以在以下相关问题中找到避免这种情况的方法:Rails JSON Serialization of Decimal adds Quotes