构造嵌套的 OpenStruct 对象
Construct nested OpenStruct object
我必须模仿 Google API 响应并创建一个可由 .
遍历的 2 级深度数据结构,如下所示:
=> user.names.first_name
Bob
有没有比这更smarter/better的方法:
user = OpenStruct.new(names: OpenStruct.new(first_name: 'Bob'))
这个方法很粗鲁,但是很管用,
require 'ostruct'
require 'json'
# Data in hash
data = {"names" => {"first_name" => "Bob"}}
result = JSON.parse(data.to_json, object_class: OpenStruct)
另一种方法是将方法添加到 Hash class 本身,
class Hash
def to_openstruct
JSON.parse to_json, object_class: OpenStruct
end
end
使用上述方法,您可以将哈希转换为 openstruct
data = {"names" => {"first_name" => "Bob"}}
data.to_openstruct
我必须模仿 Google API 响应并创建一个可由 .
遍历的 2 级深度数据结构,如下所示:
=> user.names.first_name
Bob
有没有比这更smarter/better的方法:
user = OpenStruct.new(names: OpenStruct.new(first_name: 'Bob'))
这个方法很粗鲁,但是很管用,
require 'ostruct'
require 'json'
# Data in hash
data = {"names" => {"first_name" => "Bob"}}
result = JSON.parse(data.to_json, object_class: OpenStruct)
另一种方法是将方法添加到 Hash class 本身,
class Hash
def to_openstruct
JSON.parse to_json, object_class: OpenStruct
end
end
使用上述方法,您可以将哈希转换为 openstruct
data = {"names" => {"first_name" => "Bob"}}
data.to_openstruct