ruby-on-rails - rails as_json 没有为 JSON.parse 正确编码

标签 ruby-on-rails json

因此,我正在使用 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只做第一个。这解释了为什么我收到 =&gt在我的输出中。

关于ruby-on-rails - rails as_json 没有为 JSON.parse 正确编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467865/

相关文章:

ruby-on-rails - rails 和回形针 : Handling uploads for multiple file types (Video and Images)

带有 Rails 4 的 jQuery 日期选择器

Python - 从 JSON 响应中提取数据(使用 TomTom api)

json - 在 scrapy 中将 json 参数传递给蜘蛛

json - 通过 JSON 网络请求发送 Onesignal/gamethrive 推送

ruby-on-rails - 开发、暂存和生产环境 Rails 应用程序

ruby-on-rails - Mechanize 错误 "too many bad responses"

json - neo4j 浏览器导出文件,包括关系

c# - 在 Json.NET 中使用 FormatterAssemblyStyle.Simple 序列化 Type 类型的字段

ruby-on-rails - Rails - 尝试学习康康舞,但@user 对象从何而来