我在配置中存储哈希路径(在JsonPath
中使用ruby),在一种情况下,我需要为一个变量获取多个字段。
示例:
{
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
"e" => 5,
}
对于一个变量,我需要将值设为3-4-5
。有没有办法一次性从"c"
访问"d"
,"e"
和JsonPath
?
$$$$$$$$$$$$$编辑$$$$$$$$$$$$$
目前看来这是jsonpath gem的限制,请随意以其他宝石/方式建议。
答案 0 :(得分:2)
是..如下所示使用Hash#values_at
:
hsh = {
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
"e" => 5,
}
hsh.values_at("c","d","e").join('-')
# => "3-4-5"
答案 1 :(得分:-1)
我通过编写一个小函数来解决此问题,该函数将参数作为逗号分隔路径的多个路径的数组并返回这些路径的值,以下是代码: -
def find_multiple_path hash, path
return path.inject([]){|tmp,p| tmp<< JsonPath.on(hash, p)}.flatten.join("-") if path and path.kind_of?(Array)
return path.split(",").inject([]){|tmp,p| tmp<< JsonPath.on(hash, p)}.flatten.join("-") if path and path.include?(",") and path.include?("$")
end
路径可以是[&#34; $。c&#34;,&#34; $。d&#34;,&#34; $。e&#34;]或&#34; $。c 。,$ d,$ E&#34;