11

私は次のようなものを持っています:

{"a":"1","b":"2","c":"3","asefw":"dfsef"}

ビューで印刷したい。それを行う最善の方法は何ですか?

JSONオブジェクトとしてパースして使ってみJSON.stringifyたのですが、どうやらインデントがおかしくなりそうです。

何かアドバイス?JavaScript ソリューションは気にしません。

4

7 に答える 7

22

どうですか:

require 'json'

hash = JSON['{"a":"1","b":"2","c":"3","asefw":"dfsef"}']
puts JSON.pretty_generate(hash)

どの出力:

{
  "a": "1",
  "b": "2",
  "c": "3",
  "asefw": "dfsef"
}

JSON.pretty_generateブラウザに送信するJSONを実際に生成するときに頼りにするツールというよりも、デバッグツールです。「きれいな」側面は、空白が追加されているため「肥大化」および「遅い」ことも意味しますが、構造の内容を診断および理解するのに適しているため、ニーズに適している可能性があります。

覚えておくべきことの 1 つは、HTML がブラウザーによってレンダリングされると、空白がむさぼり食われるため、空白の実行が消えるということです。これを避けるには<pre>、空白と改行を保持するために JSON 出力をブロックでラップする必要があります。このようなものが動作するはずです:

<pre>
{
  "a": "1",
  "b": "2",
  "c": "3",
  "asefw": "dfsef"
}
</pre>
于 2013-06-25T05:14:07.103 に答える
5
irb(main)> puts queried_object.pretty_inspect

PrettyPrintから、これがrequire 'pp'機能するために最初に必要になる場合があります。

これは、Rails.logger出力などにも最適です。

于 2016-09-19T17:52:13.133 に答える
3
<%= raw JSON.pretty_generate(hash).gsub(" ","&nbsp;") %>
于 2013-10-12T21:21:13.390 に答える
3

gem awesome_printを試すことができます 非常にうまく機能し、ビューで書き込みます

<%= ap(your_hash, plain: true, indent: 0).html_safe %>

また、スタイルの構成の値をハッシュ ビューに変更することもできます。

于 2017-10-26T15:38:38.843 に答える