我试图使用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
}
转换&#39; =&gt;&#39;冒号到冒号将导致有效的json文件。 有没有办法使用我不知道的Ruby / ERB(除了分别打印键,值和字符)?或者应该在我生成的json文件上运行替换?
我觉得我错过了明显的解决方案
答案 0 :(得分:1)
您正在寻找类似的东西:
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]$