首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造嵌套OpenStruct对象

构造嵌套OpenStruct对象
EN

Stack Overflow用户
提问于 2017-11-24 22:37:05
回答 1查看 2.4K关注 0票数 5

我必须模拟Google的响应,并创建一个.可以遍历的2级深数据结构,如:

代码语言:javascript
复制
=> user.names.first_name

鲍勃

有没有比这更聪明/更好的方法:

代码语言:javascript
复制
 user = OpenStruct.new(names: OpenStruct.new(first_name: 'Bob'))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 07:37:13

这种方法很粗鲁,但有效,

代码语言:javascript
复制
require 'ostruct'
require 'json'
# Data in hash
data = {"names" => {"first_name" => "Bob"}}
result = JSON.parse(data.to_json, object_class: OpenStruct)

另一种方法是将方法添加到Hash类本身,

代码语言:javascript
复制
class Hash
  def to_openstruct
    JSON.parse to_json, object_class: OpenStruct
  end
end

使用上述方法,您可以将散列转换为openstruct。

代码语言:javascript
复制
data = {"names" => {"first_name" => "Bob"}}
data.to_openstruct
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47480803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档