【发布时间】:2016-05-08 15:40:57
【问题描述】:
我需要获取 Web 表单中的原始客户端文本并将其作为 JSON 发送回 Tomcat servlet。由于遗留原因,此输入可能被格式化为 Ruby 哈希。我也不能强迫我的客户将他们现有的 Ruby 格式输入转换为 JSON。我可以编写一个自定义解析器,但我想看看是否存在基于 JavaScript 的解决方案,它可以让我确定一个文本块是否是 Ruby 哈希,如果是,则将其转换为 JSON。
【问题讨论】:
-
不能使用
object.to_json? -
我相信这是 Rails 的事情,不是吗?
-
“Ruby 哈希”是什么意思?你的意思是哈希文字吗? JSON是一种数据序列化格式; Ruby 哈希字面量是一种编程结构,没有任何与 JSON 相同的约束。
{ class Foo; end => 2**Float::INFINITY }是 Ruby 中完全有效的哈希字面量。 -
我所指的输入将是序列化的对象,根据我对 Ruby 的了解,Ruby 哈希格式。
-
Ruby 哈希可以包含任何 Ruby 对象 - 当您使用
to_s方法将哈希序列化为字符串时,您可以获得类似{:a=>5, "asdasd"=>nil, :b=>2016-02-01 10:18:43 +0100}的内容。即使使用 Ruby,您也绝对无法解析它,正如 Jordan 已经说过的,这不是 JSON 那样的序列化格式。但是,您可能会编写一些内容来覆盖它的 子集,例如,将键和值限制为字符串和/或数字。您需要先澄清这一点,然后才能继续。
标签: javascript ruby hash