0

@myhashRubyには次のハッシュ ( ) があります。

[
  {
    "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

あなたが持っているものはハッシュではありません。これはハッシュの配列です (正確には、1 つのハッシュの配列です)。

まず、配列内の適切な要素 (最初の要素) をアドレス指定し、次にその値をキーでアドレス指定する必要があります。

@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 に答える