2014-06-19 33 views
0

什麼是正確的方法來寫一些哈希到一個json文件,可以稍後有效地解析。 e.g:寫一堆哈希到一個json文件

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

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

我可以寫每個哈希的文件後一個逗號,但這並不打算對我很好..它是一個更好的方式來做到這一點?

+0

你有一個一堆散列,你想將它們轉換爲JSON並將該JSON保存在文件中? –

+0

@ muistooshort:是的,然後我希望能夠稍後解析json文件。 – tokhi

+1

爲什麼在每個文檔看起來不好看後添加逗號? – ixti

回答

2

以後可以進行有效的分析。

你會希望把你的哈希值在列表中,這樣以後就可以加載和一次掃描分析的一切:

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) 
+0

據我所知,@tokhi不想先創建一個數組。他需要某種流... – ixti

+0

如果你傳遞的一些哈希值具有相同的密鑰,會發生什麼? – tokhi

+0

數組中的每個散列都獨立於其他散列,因此可以擁有相同的密鑰而沒有問題。 –