2011-08-02 6 views
0

Facebook과 같은 JSON 응답을 좋아합니다.해시에서 uid 찾기 작동하지 않음

[ 
{"uid"=>123, "name"=>"Test", "is_app_user"=>true}, 
{"uid"=>1234, "name"=>"Test1", "is_app_user"=>true} 
] 

는 I는이 @Test하는 결과 저장 :

@test.select {|k,v| k == "name"}} 

을하지만 결과 대신 원하는 결과 빈 배열이다

[] 

원하는 출력 (1)

[{"name" => "Test"}, { "name" => "Test1"}] 

그리고 나서 (2)

[Test, Test1] * This will be used to query the database 

의견이 있으십니까? 감사.

+0

1 :'@ test.class'는 무엇을 반환합니까? 2 : 선택 블록 안에'k'와'v'를 인쇄 해 보셨습니까? 그렇지 않다면, 올바른 방향으로 지적해야합니다. – Casper

+0

원하는 결과는 무엇입니까? – emboss

+0

@ test = Json이 위에 응답합니다. – Immo

답변

3
@test = [ 
    {"uid"=>123, "name"=>"Test", "is_app_user"=>true}, 
    {"uid"=>1234, "name"=>"Test1", "is_app_user"=>true} 
] 

@test.collect { |itm| itm["name"] } 

=> ["Test", "Test1"] 
+0

'NoMethodError (정의되지 않은 메소드'name 'for # )'not working mate. – Immo

+0

@soldier - 편집을 참조하십시오. 'itm [ "name"]'을 사용하십시오. – Casper

+0

감사합니다. 레일즈에서'@ test'를 출력하면 첫 번째 응답을 출력하기 때문에 응답을 조금 편집하십시오'@test.collect {| itm | itm [ "name"]}'을 새로운 변수에 넣고 test 대신에 그 변수를 출력합니다. 다시 한 번 감사드립니다! – Immo