如何从散列中的 get 请求访问值 (ruby)
How to access values from a get request in a hash (ruby)
假设我有一个获取请求:
def get (var)
uri = URI('url')
res = Net::HTTP.get_response(uri)
parse = JSON.parse(res[:body])
{parse['color'] => parse ['id']}
get 请求采用变量和 returns 哈希。我知道在我的 slim 文件中做类似
的事情
get(var)['red']
会给我键 'red' 的相应值。但是,如果我想通过他们的名字访问散列的 key/values 怎么办。所以像
get(var)['color']
这样的事情可能吗?
假设请求的响应是 {'red' => 3}
我可以像上面的代码一样通过调用 'color' 来访问密钥 'red' 吗?我意识到上面代码的语法很可能不正确。
get 的 returned 值只是单个元素散列,如 {'red' => 3}
如果您想在不访问条目的情况下获取键和值,请使用
get(var)['red']
=> 3
您可以执行以下操作:
get(var).keys.first
=> 'red'
get(var).values.first
=> 3
或者您可以获取 return 值并将其映射到新的散列中:
new_hash = {"color" => get(var).keys.first, "id" =>get(var).values.first}
然后像这样访问:
new_hash["颜色"]
=> 红色
new_hash["id"]
=> 3
假设我有一个获取请求:
def get (var)
uri = URI('url')
res = Net::HTTP.get_response(uri)
parse = JSON.parse(res[:body])
{parse['color'] => parse ['id']}
get 请求采用变量和 returns 哈希。我知道在我的 slim 文件中做类似
的事情get(var)['red']
会给我键 'red' 的相应值。但是,如果我想通过他们的名字访问散列的 key/values 怎么办。所以像
get(var)['color']
这样的事情可能吗? 假设请求的响应是 {'red' => 3} 我可以像上面的代码一样通过调用 'color' 来访问密钥 'red' 吗?我意识到上面代码的语法很可能不正确。
get 的 returned 值只是单个元素散列,如 {'red' => 3}
如果您想在不访问条目的情况下获取键和值,请使用
get(var)['red']
=> 3
您可以执行以下操作:
get(var).keys.first
=> 'red'
get(var).values.first
=> 3
或者您可以获取 return 值并将其映射到新的散列中:
new_hash = {"color" => get(var).keys.first, "id" =>get(var).values.first}
然后像这样访问:
new_hash["颜色"]
=> 红色
new_hash["id"]
=> 3