2013-08-08 5 views
0

У меня есть два возврата JSON.Parse JSON с Ruby

Один я могу разобрать отлично

{"login"=>"foo", "id"=>bar, 

с

@foobar_collect["login"] 

Но я имею вопросы с

{"items"=>[{"user_id"=>foo, "user_type"=>"bar", 

Стараюсь

@foobar_collect["items"]["user_id"] 

И это дает мне ошибку no implicit conversion of String into Integer

Что я делаю неправильно?

+0

Был ли один из нижеприведенных ответов решить вашу проблему? – pdoherty926

ответ

0
@foobar_collect["items"].first["user_id"] 
+0

Есть ли разница между «» и «» и в чем разница между .first и [0] –

+0

@Elementmindfreak В этом случае не существует значимых различий между '.first' и' [0] '. Строки с двойными кавычками интерполируются, одиночные кавычки - нет. –

+0

@Elementmindfreak для объяснения ответа @ DaveNewton: интерполяция означает, что вы можете оценить выражение внутри строки с двумя кавычками, используя '# {...}'. Например: 'name = 'Pete'; puts "Hello, # {name}" # => 'Привет, Пит!' ' – pdoherty926

2

попробовать

@foobar_collect['items'][0]['user_id'] 

Причина, почему ваш код не работает это @foobar_collect['items'] является массивом.

+0

Есть ли разница между «» и «» и какая разница между .first и [0] –

+0

нет никакой разницы, я использую только двойные кавычки, когда строка содержит код ruby ​​внутри строки, такой как '' asd # { 1 + 1} asd ". '[0]' и '.first' тоже одно и то же, но я предпочитаю' [0] ', так как его легче читать и проще получить другие элементы массива. – jvnill