Ruby:如何在新行中生成带有大括号(方括号、圆括号、花括号)的 json 输出
Ruby: how to generate a json output with braces (brackets, parentheses, curlies) in a new line
对于参考文件比较需要生成 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"
}
}
对于参考文件比较需要生成 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"
}
}