Arrays ruby导入json数据

Arrays ruby导入json数据,arrays,json,ruby,Arrays,Json,Ruby,如何使用main.rb文件中data.rb文件的解析数据 我试图数一数“2017年”发生的次数,以及“2014年”发生的次数 我想将这两个计数返回到main.rb中的方法count_years。这是如何正确完成的 main.rb def计数\u年 File.open('data.rb')[:phone_data] 如果:电话_数据。“年份”==2017年 2017年#计数#新变量2017年# 结束 如果:电话_数据。“年”==2014年 2014年#计数#新变量2014年# 结束 end将da

如何使用main.rb文件中data.rb文件的解析数据

我试图数一数“2017年”发生的次数,以及“2014年”发生的次数

我想将这两个计数返回到main.rb中的方法count_years。这是如何正确完成的

main.rb

def计数\u年
File.open('data.rb')[:phone_data]
如果:电话_数据。“年份”==2017年
2017年#计数#新变量2017年#
结束
如果:电话_数据。“年”==2014年
2014年#计数#新变量2014年#
结束

end
data.rb
文件设置为RSpec使用。即使在这种情况下,也有点尴尬。我会将JSON数据移动到JSON文件中,然后您可以从这两个位置访问它。还有其他选择,但我需要更多地了解您的应用程序,以及如何和在何处使用这些数据

data.json: data.rb: main.rb: 该方法将返回一个散列,其中键是年份,值是计数:

count_years # => {"2014"=>1, "2016"=>1, "2017"=>2}

再次询问相同问题可能会重复您的第三个帐户?您甚至忘记在最后两个数组元素中将“Car”更改为“Phone”。
require 'json'

let(:phone_data) {
  JSON.parse(File.read('data.json'))
}
require 'json'

def count_years
  JSON.parse(File.read('data.json'))
    .group_by { |h| h['Year'] }
    .map { |year, entries| [year, entries.size] }
    .to_h
end
count_years # => {"2014"=>1, "2016"=>1, "2017"=>2}