【发布时间】:2012-06-18 20:09:23
【问题描述】:
我正在为 Rails 控制器调用返回 JSON。在控制器中,我需要从包含 NaN 对象的 Ruby 哈希生成 JSON。返回 JSON 时浏览器显示错误:
{
"value": NaN
}
错误:第 1 行解析错误:“值”:NaN
我做了一些快速研究,似乎 NaN 不是有效的 JSON 对象,因此应该用引号括起来 - “NaN”。 Rails JSON 解析器不符合标准 JSON 格式并将 NaN 对象包装在引号中,这似乎很愚蠢。
我尝试将散列扁平化为字符串并将其转换回散列。但我一直遇到解析错误。
我该如何解决这个问题?
编辑:
简单来说,哈希是这样的:
{ "value" => Float::NAN }
编辑 2:
我需要把上面的hash转换成下面的json:
{
"value": "NaN"
}
【问题讨论】:
-
“包含 NaN 对象的 Ruby 哈希”是什么意思? Ruby 中没有所谓的 NaN。实际的哈希是什么样的?
-
这似乎是 9 个月前用 github.com/rails/rails/commit/… 修复的...我使用的是 Rails 3.2.3。为什么我还看到这个?
标签: ruby-on-rails ruby json