Ruby:如何在新行中生成带括号(括号,括号,curlies)的json输出

时间:2016-03-29 17:06:50

标签: ruby json pretty-print braces

对于参考文件比较需要生成json文件的可能性,其中大括号总是以新行开头。

对于Instance,json散列:

my_json = {"Key" => {"Key" => "Value"}}

的召唤之后

领先

JSON.pretty_generate(my_json)

{
  "Key": {
    "Key": "Value"
  }
}

但不幸的是我需要这样的输出:

{
  "Key": 
  {
    "Key": "Value"
  }
}

有没有办法用红宝石而不破坏漂亮的格式?

由于

1 个答案:

答案 0 :(得分:0)

如果你想要输出的这种差异,你为什么不强迫它?根据我的评论:

更新以涵盖{[括号

my_json = {"Keys" => [{"Key" => "Value"},{"key1" => "val2"}], "newkey" => {"nk1" => "val3"}}

puts JSON::pretty_generate(my_json).gsub(
           /^(.*)(\"[^\"]+\"): ([\{\[])/, #first brackets: white space. Second: Key, Third: Bracket
           "\\1\\2:\n\\1\\3")             #\\1: white space (on both lines), \\2: Key, \\3: Brac[e|ket]

{
  "Keys":
  [
    {
      "Key": "Value"
    },
    {
      "key1": "val2"
    }
  ],
  "newkey":
  {
    "nk1": "val3"
  }
}