2014-06-19 3 views
0

나중에 파싱 할 수있는 json 파일에 해시 수를 쓰는 올바른 방법은 무엇입니까? 예컨대 :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

까지 undestand @ tokhi 배열을 먼저 만들고 싶지 않다. 그는 어떤 종류의 스트리밍이 필요합니다 ... – ixti

+0

전달한 해시 중 일부가 동일한 키를 가지고 있다면 어떻게됩니까? – tokhi

+0

배열의 각 해시는 다른 해시와 독립적이며 문제없이 동일한 키를 가질 수 있습니다. –

관련 문제