如何从ruby中的哈希输出中搜索值

时间:2017-11-16 13:08:15

标签: ruby

我的输出如下:

{:compartmentId=>"osdaa", :displayName=>"server1", :id=>"dffdssa",
 :lifecycleState=>"AVAILABLE", :sizeInGBs=>50, :sizeInMBs=>1024, 
 :timeCreated=>#<DateTime: 2017-09-18T05:57:43+00:00 ((2458015j,21463s,494000000n),+0s,2299161j)>,
 :timeRequestReceived=>#<DateTime: 2017-09-18T05:57:37+00:00 ((2458015j,21457s,331000000n),+0s,2299161j)>,
 :uniqueSizeInGBs=>XX, :uniqueSizeInMbs=>14072, :volumeId=>"abcd"}

我需要价值:id 我怎么能得到这个?

1 个答案:

答案 0 :(得分:0)

你所要做的就是哈希[key]。 我们需要看到您的代码来帮助您。

编辑:

我不知道OCI :: Core :: BlockstorageClient但是根据文档(https://docs.us-phoenix-1.oraclecloud.com/tools/ruby/latest/OCI/Core/BlockstorageClient.html#list_volume_backups-instance_method ),list_volume_backups返回一个响应对象,其数据类型为Array

所以bkp_id是一个数组。你应该先尝试第一个或迭代,然后再尝试[:id]

如果你知道你将在这个数组中只有一个项目,请尝试使用bkp_id.first获取该项目,然后如果它不是nil,则执行[:id]。 如果您可以有多个项目,请执行bkp_id.map {| b | b [:id}获取所有项目的ID。

编辑:

bkp_id是一个数组而不是哈希值,因此[:id]应替换为.id