使用 Ruby 和 ERB('=>' 表示法)在 JSON 文件中呈现哈希
Rendering a hash inside a JSON file with Ruby and ERB ('=>' notation)
我正在尝试使用 ERB 呈现 JSON 模板,不幸的是,由于“=>”散列符号,它不像使用 Python 那样简单。
这是一个简短的例子:
require 'erb'
h = Hash.new
h["first"] = "First"
h["second"] = "Second"
template = ERB.new <<-EOF
{
"key": "value",
"foo": 1,
"Hash": <%= h %>,
"bar": 2
}
EOF
puts template.result(binding)
此代码将产生此输出:
{
"key": "value",
"foo": 1,
"Hash": {"first"=>"First", "second"=>"Second"},
"bar": 2
}
将“=>”符号转换为冒号将生成有效的 json 文件。
有没有一种我不知道的使用 Ruby/ERB 的方法(除了分别打印键、值和字符)?或者应该 运行 替换我生成的 json 文件?
我觉得我缺少明显的解决方案
您是否在寻找类似的东西:
require 'erb'
require 'json'
h = Hash.new
h["first"] = "First"
h["second"] = "Second"
template = ERB.new <<-EOF
{
"key": "value",
"foo": 1,
"Hash": <%= h.to_json %>,
"bar": 2
}
EOF
puts template.result(binding)
输出
[arup@Ruby]$ ruby a.rb
{
"key": "value",
"foo": 1,
"Hash": {"first":"First","second":"Second"},
"bar": 2
}
[arup@Ruby]$
我正在尝试使用 ERB 呈现 JSON 模板,不幸的是,由于“=>”散列符号,它不像使用 Python 那样简单。 这是一个简短的例子:
require 'erb'
h = Hash.new
h["first"] = "First"
h["second"] = "Second"
template = ERB.new <<-EOF
{
"key": "value",
"foo": 1,
"Hash": <%= h %>,
"bar": 2
}
EOF
puts template.result(binding)
此代码将产生此输出:
{
"key": "value",
"foo": 1,
"Hash": {"first"=>"First", "second"=>"Second"},
"bar": 2
}
将“=>”符号转换为冒号将生成有效的 json 文件。 有没有一种我不知道的使用 Ruby/ERB 的方法(除了分别打印键、值和字符)?或者应该 运行 替换我生成的 json 文件?
我觉得我缺少明显的解决方案
您是否在寻找类似的东西:
require 'erb'
require 'json'
h = Hash.new
h["first"] = "First"
h["second"] = "Second"
template = ERB.new <<-EOF
{
"key": "value",
"foo": 1,
"Hash": <%= h.to_json %>,
"bar": 2
}
EOF
puts template.result(binding)
输出
[arup@Ruby]$ ruby a.rb
{
"key": "value",
"foo": 1,
"Hash": {"first":"First","second":"Second"},
"bar": 2
}
[arup@Ruby]$