我有一个Ruby数组,看起来像这样。
arr = [
{ "dag"=>{
"tasks"=>[
{ "arguments"=>{
"parameters"=>[
{ "name"=>"inputJson",
"value"=>"{{workflow.parameters.inputJson}}"
}
]
},
"name"=>"build-handler-workflow",
"template"=>"build-handler-workflow"
}
]
},
"name"=>"dag-build-handler-workflow"
},
{ "container"=>{
"args"=>[
"{{inputs.parameters.inputJson}}"
],
"command"=>["cowsay"],
"image"=>"docker/whalesay:latest",
"resources"=>{
"requests"=>{
"cpu"=>"100m",
"memory"=>"100Mi"
}
}
},
"inputs"=>{
"parameters"=>[
{"name"=>"inputJson"}
]
},
"metadata"=>{
"annotations"=>{
"workflows.argoproj.io/progress"=>"0/10000"
}
},
"name"=>"build-handler-workflow",
"synchronization"=>{
"semaphore"=>{
"configMapKeyRef"=>{
"key"=>"template",
"name"=>"build-handler-config"
}
}
}
}
]
我该如何迭代这个数组哈希,这样我就可以只得到图像字段。可能是这样的
p arr['spec']['templates']['container']['image']
"image"=>"docker/whalesay:latest"
我尝试了map方法来访问hash值。无法得到有效的结果。
p arr.map{|e|"#{e["container"]}"}
["", "{\"args\"=>[\"{{inputs.parameters.inputJson}}\"], \"command\"=>[\"cowsay\"], \"image\"=>\"docker/whalesay:latest\", \"resources\"=>{\"requests\"=>{\"cpu\"=>\"100m\", \"memory\"=>\"100Mi\"}}}"]
4条答案
按热度按时间olmpazwi1#
你可以使用它,
dig
在浏览哈希值时也很有用pokxtpni2#
代码
或者你可以用挖掘法
输出
izkcnapc3#
如果你不知道在一个给定的数组或哈希(这里是一个数组)中的哪个嵌套哈希中可以找到一个给定的键,并且想要返回一个包含整个给定对象中该键的值的数组,你可以使用下面的递归方法。
abithluo4#
非常感谢您提供所有这些替代方案,所有这些方法都很好,但我更喜欢这一个:
我可以从数组中获取数据。