2011-10-20 12 views
0

저는 루비를 처음 사용하고 며칠 동안 사용하기 시작 했으므로 매우 근본적인 것을 묻는다면 사과드립니다.루비 - 해시로 포맷 된 배열을 실제 해시로 변환합니다.

다음 배열을 해시로 변환하는 방법을 찾고 있습니다. arr.length 1.

나는 그것을 해결하기 위해 시도했지만 해시로 변환 할 수 없습니다입니다

arr => 

{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"} 

.

Testlink xmlrpc가 위에 표시된 형식으로 응답하기 때문에 필자가 필요했습니다.

이 문제에 도움이되는 정보가 있으면 도움이 될 것입니다.

감사합니다.

+0

배열이 이미 해시 상태이거나 코드에서 누락 된 항목이 있습니다. – lkuty

+0

뭔가 빠졌다고 생각합니다. 배열이 보이지 않습니다. –

+0

@ 레이 - 실제 xmlrpc 응답은 "[{id"= ""xxx ","name "=>"show all ","parent_id "=>"yyy ","tsuite_name "=>"show system " "tc_external_id"=> "zzz"}] " – Anand

답변

5

루비에 오신 것을 환영합니다!

아래 구조는 해시입니다.

{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"} 

은이 배열, 그것은 중괄호로 둘러싸인 될 경우 :

[{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"}] 

는하지만 내가 생각하는 당신은 무엇을했다 주어진이 :

{ "arr" => {"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"} } 

은 상기 목적은 해시입니다 해시 이내. length 메서드는 해시가 단일 키, 즉 arr 만 포함했기 때문에 1을보고했습니다.

당신은 class 방법과 변수의 클래스를 테스트 할 수 있습니다

: 당신이 필요로하는 모든 내부 해시 값 인 경우

$ irb 
>> var = { "arr" => {"id"=>"xxx", "name"=>"show all" } } 
=> { "arr" => {"id"=>"xxx", "name"=>"show all" } } 
>> var.class 
=> Hash 

는 다음과 같이 그것을 잡아 :

>> keep = var["arr"] 
=> {"id"=>"xxx", "name"=>"show all" } 

하는 경우 나는 귀하의 질문에 대해 완전히 오해하고 명확히하십시오.

+0

Karrick - 답변 해 주셔서 감사합니다. 배열 일 뿐이므로 응답은 답장에 표시된대로 중괄호로 묶었습니다. 그걸 해시로 변환하는 방법이 있습니까? – Anand

+0

물론, 중괄호 안의 색인을 사용하여 배열에서 어떤 항목을 얻을 수 있습니다. 즉,'arr [0]'입니다. Ruby의 가장 일반적인 단축키는'first' 메소드를 사용하여 Array : arr.first에서 첫 번째 항목을 가져 오는 것입니다. – karrick

+0

위대한, 그것은 일했다, 고마워. – Anand

관련 문제