2

デバッグ目的で、API から "美化された" 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 %>

...景色は美しくありません。ページ ソースを表示すると、json はフォーマットされています (適切なインデントと行) が、これがビューに正しく表示されるために必要な html フォーマットが整っていません。

私の質問は、Rails JSON メソッドを正しく使用しているかどうか、または書式設定を行うために別の方法が必要かどうかです。

4

2 に答える 2

6

使用する:

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

元のコードによって生成されたページ ソースを見ると、美化されていることがわかりますが、ブラウザはJSON.pretty_generate(parseHolder)追加された改行とタブを無視していました。

于 2013-01-20T16:57:08.163 に答える
3

したがって、答えは次のとおりです。

<pre><%= @beautifiedJson %></pre>
于 2013-01-20T16:49:19.407 に答える