rubyのhashのv値を取得したら?

1174 ワード

最近rubyを書いて、hashを使って、kを通じてv値を取得して、時にはhash[“k”]を通じて取得して得ることができて、時には通過してまた取得することができなくて、顔がぼんやりしていると感じます
 
下rubyのhashをよく観察すると,2つの表現形式があるので,v値を取得するにも2つの形式がある.
方式1
hash["k"]
 
方法2
hash[:k]
 
具体的なコードを見てみましょう.ルビーのhashを取得するときは注意してください.
s = '{"success":1,"data":"UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp:"}'
hash_s = JSON.parse(s)

puts hash_s
# {"success"=>1, "data"=>"UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp:"}
puts hash_s["data"]
# UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp:
puts hash_s[:data]
#     


hash_h = {"success":1,"data":"UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp:"}
puts hash_h
# {:success=>1, :data=>"UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp:"}
puts hash_h["data"]
#     
puts hash_h[:data]
# UPID:host-5853c035138f:00002954:DD16:5D37BC34:add disk::admin@vtp: