如何从Ruby中获取哈希值?

时间:2013-05-18 21:39:23

标签: ruby

我在Ruby中有以下哈希值(@myhash):

[
  {
    "id"        => "123456789",
    "name"      =>"Random name", 
    "list_type" =>"random type of list"
  }
] 

如何从哈希中取出id的值? (基本上我的结果应该是:123456789)

  • 当我尝试@myhash[:id]时,我收到以下错误“无法将符号转换为整数”
  • 当我尝试@myhash['id']时,我收到以下错误“无法将字符串转换为整数”

我尝试添加.to_i.to_s等等,但没有任何帮助。

2 个答案:

答案 0 :(得分:9)

你所拥有的不是哈希。它是一个哈希数组(确切地说,是一个哈希的数组)。

首先,您必须处理数组中的正确元素(第一个),然后按键解析其值。

@myhash[0]['id'] # => '123456789'
# or
@myhash.first['id'] # => '123456789' 
  

我收到以下错误“无法将符号转换为整数”

你认为你正在使用哈希,但实际上,它就是数组。数组不接受字符串或符号键。他们想要索引的整数。因此错误。

答案 1 :(得分:2)

Ruby Hash看起来像{},而[]Array。您的对象是数组,第一个且唯一的项是哈希。要访问它,请使用以下命令:

@myhash.first['id'] # 123456789'