4

因此,在我看来,我正在使用 ruby​​ 将一个相当复杂的对象转换为 JSON 格式object.as_json,然后在客户端使用JSON.parse()javascript 对其进行解析,以将对象反序列化为可用的东西。但是,输出as_json似乎使用了单引号编码,"而不是 JSON 结构所需的双引号。任何建议我在 as_json 上做错了什么?

4

1 回答 1

5

啊,弄清楚发生了什么:它实际上是两个不同问题的组合:

首先,引号由 rails 自动编码(以防止 XSS 和类似情况)。这可以通过使用html_safe方法或raw函数来逃避(但这可能会引入 XSS 漏洞,因此请谨慎使用)。

其次,我使用as_json的是to_json. 在 Rails 中将 ActiveSupport 对象转换为 JSON 需要两个单独的操作:将对象渲染为可以序列化为 JSON 的结构,然后实际序列化对象。to_json两者都做,但as_json只做第一个。这解释了为什么我要=&gt进入我的输出。

于 2013-01-23T22:19:01.297 回答