2013-01-20 21 views
1

我想在調試目的的視圖中顯示一些json「美化」。例如,而不是顯示:rails美化視圖中的json

{"observations"=>{"realtime_start"=>"1776-07-04", "realtime_end"=>"9999-12-31", "observation_start"=>"1776-07-04", "observation_end"=>"9999-12-31", "units"=>"lin", "output_type"=>"1", "file_type"=>"xml", "order_by"=>"observation_date", "sort_order"=>"desc", "count"=>"2541", "offset"=>"0", "limit"=>"10", "observation"=>[{"realtime_start"=>"2013-01-10", "realtime_end"=>"9999-12-31", "date"=>"2012-12-01", "value"=>"1458.750"}, {"realtime_start"=>"2012-12-13", "realtime_end"=>"2012-12-19", "date"=>"2012-11-01", "value"=>"1435.307"}, {"realtime_start"=>"2012-12-20", "realtime_end"=>"2013-01-09", "date"=>"2012-11-01", "value"=>"1435.304"}, {"realtime_start"=>"2013-01-10", "realtime_end"=>"9999-12-31", "date"=>"2012-11-01", "value"=>"1435.303"}, {"realtime_start"=>"2012-11-01", "realtime_end"=>"2012-11-07", "date"=>"2012-10-01", "value"=>"1418.277"}, {"realtime_start"=>"2012-11-08", "realtime_end"=>"2012-11-14", "date"=>"2012-10-01", "value"=>"1418.286"}, {"realtime_start"=>"2012-11-15", "realtime_end"=>"2012-11-22", "date"=>"2012-10-01", "value"=>"1418.285"}, {"realtime_start"=>"2012-11-23", "realtime_end"=>"2012-11-28", "date"=>"2012-10-01", "value"=>"1418.284"}, {"realtime_start"=>"2012-11-29", "realtime_end"=>"9999-12-31", "date"=>"2012-10-01", "value"=>"1418.274"}, {"realtime_start"=>"2012-10-04", "realtime_end"=>"2012-10-10", "date"=>"2012-09-01", "value"=>"1409.636"}]}} 

...我想顯示:

{ 
"observations": { 
    "realtime_start": "1776-07-04", 
    "realtime_end": "9999-12-31", 
    "observation_start": "1776-07-04", 
    "observation_end": "9999-12-31", 
    "units": "lin", 
    "output_type": "1", 
    "file_type": "xml", 
    "order_by": "observation_date", 
    "sort_order": "desc", 
    "count": "2541", 
    "offset": "0", 
    "limit": "10", 
    "observation": [{ 
     "realtime_start": "2013-01-10", 
     "realtime_end": "9999-12-31", 
     "date": "2012-12-01", 
     "value": "1458.750" 
    }, { 
     "realtime_start": "2012-12-13", 
     "realtime_end": "2012-12-19", 
     "date": "2012-11-01", 
     "value": "1435.307" 
    }, { 
     "realtime_start": "2012-12-20", 
     "realtime_end": "2013-01-09", 
     "date": "2012-11-01", 
     "value": "1435.304" 
    }, { 
     "realtime_start": "2013-01-10", 
     "realtime_end": "9999-12-31", 
     "date": "2012-11-01", 
     "value": "1435.303" 
    }, { 
     "realtime_start": "2012-11-01", 
     "realtime_end": "2012-11-07", 
     "date": "2012-10-01", 
     "value": "1418.277" 
    }, { 
     "realtime_start": "2012-11-08", 
     "realtime_end": "2012-11-14", 
     "date": "2012-10-01", 
     "value": "1418.286" 
    }, { 
     "realtime_start": "2012-11-15", 
     "realtime_end": "2012-11-22", 
     "date": "2012-10-01", 
     "value": "1418.285" 
    }, { 
     "realtime_start": "2012-11-23", 
     "realtime_end": "2012-11-28", 
     "date": "2012-10-01", 
     "value": "1418.284" 
    }, { 
     "realtime_start": "2012-11-29", 
     "realtime_end": "9999-12-31", 
     "date": "2012-10-01", 
     "value": "1418.274" 
    }, { 
     "realtime_start": "2012-10-04", 
     "realtime_end": "2012-10-10", 
     "date": "2012-09-01", 
     "value": "1409.636" 
    }] 
} 

}

當我分配可變@beautifiedJson = JSON.pretty_generate(parseHolder)中,用parseHolder是JSON對象,然後將@beautifiedJson在我看來,通過:

<%= @beautifiedJson %> 

...視圖ISN沒有美化。當我查看頁面源代碼時,json被格式化(正確的縮進和行),但是,在視圖中正確顯示的必要html格式不適用。

我的問題是我是正確使用rails JSON方法還是需要另一種方法來完成格式化?

+2

使用'

<%= @beautifiedJson %>
' – daniloisr

+0

就是這樣,非常感謝。 – JohnGalt

回答

4

用途:

<pre> 
    <%= @beautifiedJson %> 
</pre> 

如果你看看你的原始代碼產生的頁面的源代碼,你會發現它已經被美化但瀏覽器忽略了JSON.pretty_generate(parseHolder)添加的換行符和製表符。

3

所以答案就是:

<pre><%= @beautifiedJson %></pre>