将一堆哈希写入json文件

时间:2014-06-19 21:28:04

标签: ruby-on-rails ruby json hash

什么是正确的方法将hashesh的数量写入json文件,以后可以有效地解析。 e.g:

hash1 = {:a=>1,:b=>'foo'}
hash2 = {:c=>3,:b=>'bar'}
...
hashN = {...}

File.open("data.json", "a") { |io|  io.write(hash1.to_json)}

我可以在文件的每个哈希之后写一个逗号,但这对我来说并不好看..这是一个更好的方法吗?

1 个答案:

答案 0 :(得分:3)

  

可以在以后有效地解析。

您需要将哈希值放在一个列表中,以便以后可以在一次扫描中加载和解析所有内容:

require 'json'

arr = []
arr << {:a=>1,:b=>'foo'}
arr << {:c=>3,:b=>'bar'}

json_str = arr.to_json

File.open("yourfile", 'w') { |file| file.write(json_str) }

稍后加载:

contents = File.read('yourfile')
arr = JSON.parse(contents)