(更新) 根据记录集构建的一组地理坐标
[{"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.generate或to_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"}]
如何在不引用小数的情况下转换该数组?
答案 0 :(得分:1)
这是因为您使用decimal
而不是float
,所以rails用引号引起来以保留精度。您可以在以下相关问题中找到避免这种情况的方法:Rails JSON Serialization of Decimal adds Quotes