首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何一次访问jsonpath中的多个密钥

如何一次访问jsonpath中的多个密钥
EN

Stack Overflow用户
提问于 2014-01-01 12:49:40
回答 2查看 1.8K关注 0票数 4

我在配置中存储哈希路径(在JsonPath中使用ruby ),在一种情况下,我需要为一个变量获取多个字段。

示例:

代码语言:javascript
运行
复制
{
 "a" => 1,
 "b" => 2,
 "c" => 3,
 "d" => 4,
 "e" => 5,
}

对于一个变量,我需要值为3-4-5。有没有一次从"c""d""e"访问JsonPath的方法?

$$$$$$$$$$$$$Edit$$$$$$$$$$$$$

这似乎是目前的限制jsonpath创业板,请随时建议在其他创业板/方式这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-05 10:02:02

我通过编写一个小函数来解决这个问题,该函数将参数作为逗号分隔路径的多个路径的数组,并返回这些路径的值,代码如下:

代码语言:javascript
运行
复制
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”。

票数 0
EN

Stack Overflow用户

发布于 2014-01-01 12:51:30

Yes..do如下所示使用Hash#values_at

代码语言:javascript
运行
复制
hsh = {
 "a" => 1,
 "b" => 2,
 "c" => 3,
 "d" => 4,
 "e" => 5,
}

hsh.values_at("c","d","e").join('-')
# => "3-4-5"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20868804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档