相当打印在Ruby中创建的JSON对象到Chrome浏览器控制台

时间:2015-01-04 05:58:40

标签: javascript ruby-on-rails json

我将Ruby对象解析为JSON,将其呈现在js.erb文件中,然后将其打印到控制台(Chrome浏览器)。

在我的js.erb文件中,打印时:

console.log("<%= @search.attributes.to_json %>")

我明白了:

{&quot;id&quot;:124,&quot;period_start&quot;:null,&quot;period_end&quot;:null,&quot;user_id&quot;:null,&quot;created_at&quot;:&quot;2015-01-04T05:54:05.133Z&quot;,&quot;updated_at&quot;:&quot;2015-01-04T05:54:05.133Z&quot;,&quot;onscreen_people_rank_lower&quot;:null,&quot;onscreen_people_rank_upper&quot;:null,&quot;incl_onscreen_people_unranked&quot;:null,&quot;offscreen_people_rank_lower&quot;:null,&quot;offscreen_people_rank_upper&quot;:null,&quot;incl_offscreen_people_unranked&quot;:null}

这很难读。我想让JSON变得漂亮,这样我就可以更轻松地阅读它了。

在我的js.erb文件中,我试过这个:

console.log(eval("(" + "<%= @search.attributes.to_json %>" + ")"))

和此:

console.log( jQuery.parseJSON("<%= @search.attributes.to_json %>") )

和此:

console.log( "<%= JSON.pretty_generate(@search.attributes) %>" )

但没有工作 - 代码未被评估,也没有输出任何内容。我做错了什么?

2 个答案:

答案 0 :(得分:1)

扩展Cba Bhusal的答案,这对我来说是最好的:

console.log("<%= j JSON.pretty_generate(@search.attributes).html_safe %>");

escape_javascript需要转义引号,而JSON.pretty_generate插入空格以使其更漂亮。 Chrome控制台中的输出如下所示:

{
  "id": 138,
  "user_id": null,
  "created_at": "2015-01-04T15:57:23.110Z",
  "updated_at": "2015-01-04T15:57:23.110Z"
  #...
}

答案 1 :(得分:0)

非常简单,试试这个

console.log("<%= @search.attributes.to_json.html_safe %>")