I have the following hash:
{:charge_payable_response=>{:return=>"700", :ns2=>"http://ws.myws.com/"}}
How can I get the value of the key :return
, which in this example is 700?
I have the following hash:
{:charge_payable_response=>{:return=>"700", :ns2=>"http://ws.myws.com/"}}
How can I get the value of the key :return
, which in this example is 700?
I would say it should be:
hash[charge_payable_response][return]
But, isn't return
a reserved word in Ruby? That could cause a problem.
If you have:
h = {:charge_payable_response=>{:return=>"700", :ns2=>"http://ws.myws.com/"}}
Then use:
h[:charge_payable_response][:return]
# => "700"
The colon prefix means that the key in the hash is a symbol, a special sort of unique identifier:
Symbol objects represent names and some strings inside the Ruby interpreter. They are generated using the :name and :"string" literals syntax, and by the various to_sym methods. The same Symbol object will be created for a given name or string for the duration of a program‘s execution, regardless of the context or meaning of that name. Thus if Fred is a constant in one context, a method in another, and a class in a third, the Symbol :Fred will be the same object in all three contexts.
If:
data = { :charge_payable_response=> { :return=>"700", :ns2=>"http://ws.myws.com/" } }
Then to get the return value use:
data[:charge_payable_response][:return]