【问题标题】:Write bunch of hashes to a json file将一堆哈希写入 json 文件
【发布时间】:2014-06-19 21:28:04
【问题描述】:

将哈希数写入 json 文件的正确方法是什么,以后可以有效地对其进行解析。 例如:

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

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

我可以在文件的每个散列后写一个逗号,但这对我来说看起来不太好..这是更好的方法吗?

【问题讨论】:

  • 您有一堆哈希值,您想将它们转换为 JSON 并将该 JSON 保存在一个文件中?
  • @muistooshort:是的,然后我希望以后能够解析 json 文件..
  • 为什么在每个文档后面加逗号不好看?

标签: ruby-on-rails ruby json hash


【解决方案1】:

以后可以有效地解析。

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

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)

【讨论】:

  • 据我所知@tokhi 不想先创建一个数组。他需要某种流媒体...
  • 如果您传递的某些哈希具有相同的键会怎样?
  • 数组中的每个哈希都是独立于其他的,因此可以毫无问题地拥有相同的键。
猜你喜欢
  • 2013-02-05
  • 2015-09-19
  • 2018-05-08
  • 2015-07-21
  • 1970-01-01
  • 2012-05-15
  • 2011-05-16
  • 2020-07-29
  • 1970-01-01
相关资源
最近更新 更多