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



对于引用文件,比较需要生成json文件的可能性,其中大括号总是从新行开始。

例如,json散列:

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

呼叫后的线索

JSON.pretty_generate(my_json)

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

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

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

有没有办法用ruby在不破坏漂亮格式的情况下做到这一点?

感谢

如果您希望输出有这种差异,为什么不强制它呢?根据我的评论:

更新以涵盖{[支架

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"
  }
}

最新更新