我必须模拟Google的响应,并创建一个.可以遍历的2级深数据结构,如:
=> user.names.first_name鲍勃
有没有比这更聪明/更好的方法:
user = OpenStruct.new(names: OpenStruct.new(first_name: 'Bob'))发布于 2018-01-23 07:37:13
这种方法很粗鲁,但有效,
require 'ostruct'
require 'json'
# Data in hash
data = {"names" => {"first_name" => "Bob"}}
result = JSON.parse(data.to_json, object_class: OpenStruct)另一种方法是将方法添加到Hash类本身,
class Hash
def to_openstruct
JSON.parse to_json, object_class: OpenStruct
end
end使用上述方法,您可以将散列转换为openstruct。
data = {"names" => {"first_name" => "Bob"}}
data.to_openstructhttps://stackoverflow.com/questions/47480803
复制相似问题