获取json文件然后使用ruby操作数据

时间:2014-03-30 11:35:59

标签: ruby json

我使用的是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文件。有没有办法做到这一点?

1 个答案:

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