5

我正在尝试从 Rails 应用程序的 JSON 输出字符串中获取 JSON 对象。目前在 JavaScript 我正在做:

data = "<%= @chromosomes.html_safe %>";

但是,由于 JSON 对象的开头和结尾都有引号,因此它不会被呈现为 JSON 对象。相反,它正在做类似的事情

 data = "[{"name":"YHet","organism_id":"4ea9b90e859723d3f7000037"}]"

有没有办法可以删除开头和结尾的引号,以便将对象视为数组而不是字符串?

4

5 回答 5

9

你为什么不这样做:

data = <%= @chromosomes.html_safe %>;

边注:

我希望你做这样的事情:

@chromosomes = [{ name: "YHet", organism_id: "foo" }].to_json
于 2012-04-09T15:02:27.157 回答
1

如果您使用的是 jQuery,您可以执行以下操作

var data = jQuery.parseJSON('[{"name":"YHet","organism_id":"4ea9b90e859723d3f7000037"}]');
于 2012-04-09T15:04:33.667 回答
0

使用评估:

var dataObject = eval('(' + dataString + ')');

于 2012-04-09T15:00:46.070 回答
0

使用JSON大多数浏览器中包含的对象,或者如果您使用 jQuery 使用$.jsonParse方法,如果定义了对象,则尝试使用JSON对象,否则解析使用eval或更安全的方式。

于 2012-04-09T15:02:19.443 回答
0

在控制器上

@my_var = MyObj.find_by_id(4).to_json

以haml方式在页面上。

var my_json = $.parseJSON("#{j @my_var}"); //used JQuery to parser JSON string
于 2014-04-04T12:26:25.653 回答