to_jsonの時にppっぽくしたい場合

jsonをrequireするとBasicObjectにto_jsonメソッドが追加される。

なので、

require 'json'

json = {a: 1, b: 2, c: [1,2,3]}.to_json
puts json

とすると、

{"a":1,"b":2,"c":[1,2,3]}

と表示される。

このjson、pp見たいに改行とか、インデントとかしている文字列にしてくれないかなぁ。
と思ったら、JSON.pretty_generateというものがあった!

require 'json'

json = JSON.pretty_generate({a: 1, b: 2, c: [1,2,3]})
puts json

結果

{
  "a": 1,
  "b": 2,
  "c": [
    1,
    2,
    3
  ]
}

ちゃんと改行インデントがされている。
素晴らしい。

タイトルとURLをコピーしました