使用Rails在视图中打印有效的,非转义的JSON

我已经尝试了一切。 每个组合的助手rawhtml_safe to_json包括对::JSON.encodeCGI.unescape一些尝试。 问题在于,无论我做什么,我都无法在视图中打印格式良好的JSON。 它始终是HTML转义的。

这是我视图中的代码:

var campaignData;

在我的情况下,它始终是被引用的引号“。我只是在引号上做一个gsub,但这对于IMO应该是一个非常简单,记录良好的用例来说是一个可怕的解决方案。

这里的问题是“=”字符串。 由于它被认为是不安全的,它会污染另一个字符串。

你可以做任何一件事:

 raw("=" + @campaign.to_json) 

要么

 "= #{@campaign.to_json}".html_safe 

大致相同。

从ActiveSupport 2.3.3开始,您就能够完成.as_json

你试过escape_javascript吗?

这是* .haml文件中的一个示例,我刚刚添加它以测试我的答案。

 :javascript var foo=$.parseJSON("#{j @albums.to_json}") 

其中jescape_javascript的短别名。

用实用方法试试这个

 var campaignData<%=h " =#{raw @campaign.to_json}" if @campaign %>;