我使用的是ruby版本2.0.0,我有一个demo.json
文件,如下所示:
{ "demo":
{
"rama" : { "Name": "demo" },
"krishna" : { "Name": "hare","place": "bharat", "hawa": { "maina": "tota"} }
}
}
现在我尝试通过这种方式操作json文件:
require 'json'
options = {}
options[:demo] = "kailash"
File.open("demo.json","w") do |f|
f.write(JSON.pretty_generate(options))
end
我想替换一些值并在现有JSON
文件中添加一些新的键值对,并且不想完全替换整个JSON
文件。有没有办法做到这一点?
答案 0 :(得分:6)
您必须首先阅读并解析您的文件,然后进行更改,最后您可以使用更新的对象覆盖该文件:
require 'json'
options = JSON.parse(IO.read('demo.json'))
options['demo']['kailash'] = { "Name" => "new" }
File.open("demo.json","w") do |f|
f.write(JSON.pretty_generate(options))
end
输出文件:
{
"demo": {
"rama": {
"Name": "demo"
},
"krishna": {
"Name": "hare",
"place": "bharat",
"hawa": {
"main": "tota"
}
},
"kailash": {
"Name": "new"
}
}
}