chi*_*ikh 10 ruby hash json ruby-on-rails pretty-print
我有类似的东西:
{"a":"1","b":"2","c":"3","asefw":"dfsef"}
Run Code Online (Sandbox Code Playgroud)
我想在视图中打印出来.最好的方法是什么?
我尝试将其解析为JSON对象并使用JSON.stringify
,但它似乎搞乱了缩进.
有什么建议?我不介意JavaScript解决方案.
the*_*Man 17
怎么样:
require 'json'
hash = JSON['{"a":"1","b":"2","c":"3","asefw":"dfsef"}']
puts JSON.pretty_generate(hash)
Run Code Online (Sandbox Code Playgroud)
哪个输出:
{
"a": "1",
"b": "2",
"c": "3",
"asefw": "dfsef"
}
Run Code Online (Sandbox Code Playgroud)
JSON.pretty_generate
在实际生成要发送到浏览器的JSON时,它更像是一个调试工具.由于添加了空白,"漂亮"方面也意味着"膨胀"和"慢",但它有助于诊断和理解结构中的内容,因此它可以很好地满足您的需求.
要记住的一件事是,HTML在浏览器呈现时会丢失空格,因此空格会消失.为了避免这种情况,您必须将JSON输出包装在<pre>
块中以保留空白和换行符.这样的事情应该有效:
<pre>
{
"a": "1",
"b": "2",
"c": "3",
"asefw": "dfsef"
}
</pre>
Run Code Online (Sandbox Code Playgroud)
小智 5
irb(main)> puts queried_object.pretty_inspect
Run Code Online (Sandbox Code Playgroud)
从PrettyPrint,因此可能需要require 'pp'
首先使其工作。
这也适用于例如Rails.logger
输出。