我有一个数组,其内容如下:
[
[0] {
"name" => “Mark”,
"id" => “01”,
"description" => “User”,
},
[1] {
"name" => “John”,
"id" => “02”,
"description" => “Developer”,
}
]
注意:现在,Array的每个项都是一个哈希(不是字符串)。也就是说,如果我做puts myarray[0].class
,我会得到hash
作为回报。
我希望能够创建一个我可以引用为object[i].field
的对象。
例如,我希望能够获得" Mark"通过致电object[0].name
或获取"开发人员"致电object[1].description
。
这可能吗?我曾尝试对我的阵列使用.to_json方法,但它并没有给我提供我需要的东西。
感谢。
答案 0 :(得分:3)
您可以使用Struct
来满足您的需求。
array = [
{
"name" => "Mark",
"id" => "01",
"description" => "User",
},
{
"name" => "John",
"id" => "02",
"description" => "Developer",
}
]
Customer = Struct.new(:name, :id, :description)
array_of_customers = array.map { |hash| Customer.new(*hash.values) }
array_of_customers[1].name # => "John"
array_of_customers[1].description # => "Developer"