0

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

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

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

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

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

4

2 回答 2

9

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

首先,您必须处理数组中的正确元素(第一个),然后通过键处理它的值。

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

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

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

于 2013-05-18T21:42:37.200 回答
2

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

@myhash.first['id'] # 123456789'
于 2013-05-18T21:44:15.657 回答