【问题标题】:escape quotes in JSON object generated in js.erb在 js.erb 中生成的 JSON 对象中的转义引号
【发布时间】:2013-11-18 10:29:52
【问题描述】:

我已经尝试了所有可能的组合并查看了所有可能的问题,但没有什么对我有用。 我有一个活动记录对象,我在 js.erb 文件中获取并转换为 json:

var university_list = "<%= University.select([:name,:id]).to_json.html_safe %>"

我得到一个带有非转义引号的字符串。 我试过的:

raw,h - 给出无方法错误

j - 使结果消失

单引号 + JSON.parse - 意外令牌错误

这听起来应该有一个简单的解决方案,但它是什么?! 提前致谢!

【问题讨论】:

  • 大学列表应该是对象还是字符串?
  • 它应该是一个对象。你可以看到最终为我工作的解决方案,虽然我不太明白。

标签: javascript ruby-on-rails json


【解决方案1】:

好的,我得到了它的工作,但解决方案真的让我感到困惑:

var university_list = <%= University.select([:name,:id]).to_json.html_safe %>

我确定 javascript 中的 erb 代码必须用引号括起来吗?对吧??

【讨论】:

  • 没有JSON是真正有效的javascript,你可以直接用它来创建基本的javascript对象:var myobj = {"property": "value"};
  • 但是不带引号直接写erb合法吗?如果是这样,为什么在很多其他情况下它都写在引号中(我指的是js.erb文件)
  • 通常你只在 js.erb 中嵌入动态字符串(因此是引号),但你可以动态构造任何有效的 js 代码(不过要小心不受信任的用户输入)
猜你喜欢
  • 2018-04-12
  • 2023-04-06
  • 2012-04-07
  • 1970-01-01
  • 2012-11-22
  • 2018-12-14
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多