2017-12-14 1 views
0

를 사용하여 중첩 된 JSON 응답의 값을 얻을 :루비 내가이 같은 JSON 응답을 json으로 보석

@response = {"result":{"amount":0.0}} 

이 어떻게 변수에 양의 값을 얻을 수 ?

이 나는 ​​시도했다 : 내가 JSON의 보석을 사용하고

@response['result']['amount'] 
@response['result'][0] 
@response[0][0] 

.

+0

'@response = { "result": { "amount": 0.0}}' –

+0

대괄호 표기법 []을 사용하여 json 응답의 값에 액세스 할 수 있습니다. '@ response.keys'를 호출하여'[]'로 전달할 수있는 모든 키를 확인하십시오. –

답변

0

중첩 된 해시 루비의 Hash#dig 방법으로는 경우 nil을 반환하기 때문에 매우 편리합니다 모든 중간 단계는 0입니다.

@response.dig(:result, :amount) 

당신이 확실하지 않은 경우는 (기본적으로이 포함됩니다 레일) Hash#with_indifferent_access를 제공 ActiveSupport::HashWithIndifferentAccess를 사용할 수있는 키 문자열이나 상징이다. 그런 다음 기호 및 문자열 형식의 키를 사용하여 값을 가져올 수 있습니다.