我在配置中存储哈希路径(在JsonPath
中使用ruby ),在一种情况下,我需要为一个变量获取多个字段。
示例:
{
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
"e" => 5,
}
对于一个变量,我需要值为3-4-5
。有没有一次从"c"
、"d"
和"e"
访问JsonPath
的方法?
$$$$$$$$$$$$$Edit$$$$$$$$$$$$$
这似乎是目前的限制jsonpath创业板,请随时建议在其他创业板/方式这样做。
发布于 2014-04-05 10:02:02
我通过编写一个小函数来解决这个问题,该函数将参数作为逗号分隔路径的多个路径的数组,并返回这些路径的值,代码如下:
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
其中路径可以是"$.c“、" $.d”、"$.e“或"$.c、$.d、$.e”。
发布于 2014-01-01 12:51:30
Yes..do如下所示使用Hash#values_at
hsh = {
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
"e" => 5,
}
hsh.values_at("c","d","e").join('-')
# => "3-4-5"
https://stackoverflow.com/questions/20868804
复制相似问题