因此,我正在使用 object.as_json
将相当复杂的对象转换为 JSON 格式。在我看来,在 ruby 中,然后在客户端使用 JSON.parse()
解析它在javascript中将对象反序列化为可用的东西。但是,来自 as_json
的输出似乎使用编码为 "
的单引号与 JSON 结构所需的双引号相反。有什么建议我对 as_json 做错了什么?
最佳答案
啊,弄清楚发生了什么:它实际上是两个不同问题的组合:
首先,引号由 rails 自动编码(以防止 XSS 等)。这可以通过使用 html_safe
来转义。方法或 raw
函数(不过,这可能会引入 XSS 漏洞,因此请谨慎使用)。
其次,我使用的是 as_json
而不是 to_json
.在 Rails 中将 ActiveSupport 对象转换为 JSON 需要两个单独的操作:将对象渲染为可以序列化为 JSON 的结构,然后实际序列化对象。 to_json
两者都可以,但是 as_json
只做第一个。这解释了为什么我收到 =>
在我的输出中。
关于ruby-on-rails - rails as_json 没有为 JSON.parse 正确编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467865/