Bry*_*yan 2 ruby json ruby-on-rails
我正在为Rails控制器调用返回JSON.在控制器中,我需要从包含NaN对象的Ruby哈希生成JSON.返回JSON时,浏览器显示错误:
{
"value": NaN
}
Run Code Online (Sandbox Code Playgroud)
错误:第1行的解析错误:"value":NaN
我做了一些快速的研究,似乎NaN不是一个有效的JSON对象,因此应该用引号括起来 - "NaN".Rails JSON解析器不符合标准JSON格式并将NaN对象包装在引号中似乎相当愚蠢.
我试图将哈希扁平化为字符串并将其转换回哈希值.但我一直在解析错误.
我该如何解决这个问题?
编辑:
简单来说,问题就是这样:
{ "value" => Float::NAN }
Run Code Online (Sandbox Code Playgroud)
编辑2:
我需要将上面的哈希转换为以下json:
{
"value": "NaN"
}
Run Code Online (Sandbox Code Playgroud)
啊我明白了 - 大约10个月前在Rails主分店修复了这个问题.(https://github.com/rails/rails/commit/7b53d1372df4bbc7a539b5e493ff1491ec460397)
要修复Rails 3.2.3 <,只需添加以下代码:
class Float
def as_json(options = nil) finite? ? self : NilClass::AS_JSON end #:nodoc:
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3506 次 |
| 最近记录: |