【问题标题】:Pretty print a JSON object created in Ruby to Chrome browser console将 Ruby 中创建的 JSON 对象漂亮地打印到 Chrome 浏览器控制台
【发布时间】:2015-03-02 00:09:54
【问题描述】:

我正在将 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) %>" )

但没有任何作用——代码没有被评估,也没有任何输出。我做错了什么?

【问题讨论】:

标签: javascript ruby-on-rails json


【解决方案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"
  #...
}

【讨论】:

    【解决方案2】:

    很简单,试试这个

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

    【讨论】:

    • 谢谢。出于某种原因,这不起作用,但确实如此:console.log("&lt;%= j @search.attributes.to_json.html_safe %&gt;")(add j)
    猜你喜欢
    • 2016-12-21
    • 2011-09-29
    • 2011-11-02
    • 2015-11-29
    • 2018-09-08
    • 2013-07-31
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    相关资源
    最近更新 更多