我正在尝试从嵌套属性中获取属性值,但它什么也不返回。
运行时log.info record['metadata']
,得到以下输出:
bang_1 | 2020-01-20 16:47:28 +0000 [info]: #0 body_size="16" collector_ip="172.22.0.1" collector_timestamp=1579538848944 name="default" version="1.0.0"
所以我跑去log.info record.dig('metadata').class
检查课:
bang_1 | 2020-01-20 16:47:28 +0000 [info]: #0 Hash
我如何获得财产的价值name
?我正在尝试执行以下代码,但是得到了NilClass
。
log.info record.dig('metadata', 'name')
log.info record.dig('metadata', 'name').class
record = {
'xx': 1
}
record['metadata'] = {
'name': 'default'
}
puts record
puts record['metadata']
# {:xx=>1, "metadata"=>{:name=>"default"}}
#.{:name=>"default"}
在这些行中
record['metadata'] = {
'name': 'default'
}
语法使用符号键(而不是字符串键)'name':
存储值。因此,您需要像这样读取该值:'default'
:name
name
record.dig('metadata', :name)
如果要避免使用符号键,则可以在创建哈希时使用其他哈希语法:
record['metadata'] = {
'name' => 'default'
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句