如果获取ruby的hash的v值?

最近写ruby,用到hash,通过k去获取v值,有时候通过hash["k"]去获取可以获取到,有时候通过又获取不到,感觉一脸懵逼

 

仔细观察了下ruby的hash,有两种表现形式,所以获取v值也有两种形式

方式1

hash["k"]

 

方法2

hash[:k]

 

下面看下具体的代码,大家在获取ruby的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:

 

你可能感兴趣的:(如果获取ruby的hash的v值?)