将JSON文件迭代到Ruby对象数组中

时间:2017-02-13 18:55:56

标签: arrays json ruby parsing

实现以下目标的最佳方式是什么?:

class Whatever
  attr_accessor :id, :name, :email
end

JSON文件:

[{"id":"1","name":"Some Name","email":"something@gmail.com"},
 {"id":"2","name":"Another Name","email":"another@gmail.com"}]

现在我要读取JSON文件,将其解析为对象Whatever的数组,以便array[0]具有Whatever类对象,其中包含第一个json对象和{{1将有一个array[1]类对象与第二个json对象。

在红宝石中实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

如果这是你为全班所做的一切,那就没有那么好了:

JSON.parse(whatevers).map do |whatever|
  element = Whatever.new
  element.id = whatever['id']
  element.name = whatever['name']
  element.email = whatever['email']
  element
end

但是,如果添加索引方法,如:

class Whatever
  def []=(name, value)
    instance_variable_set("@#{name}", value)
  end
end

归结为:

JSON.parse(whatevers, object_class: Whatever)