微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅当 JMESPATH

如何解决仅当 JMESPATH

我有一个简单的 JSON 时:

{
    "name": "Tom","age": 20
}

是否有任何 JMESPath 查询仅当“name”为“Tom”时才能获取“age”?

查询应该得到带有上层 JSON 的“20”。

但是,如果名字不是“Tom”,比如:

{
    "name": "Bob","age": 31
}

查询应返回“null”。

解决方法

为了过滤,你需要一个数组。
您可以使用 to_array 函数从任何对象获取数组。

然后,因为您有一个唯一对象,您可以停止过滤器创建的投影,并使用 | [0] 获取数组的第一个元素,如 pipe expressions section of the tutorial 中所述。

查询:

to_array(@)[?name == `Tom`].age | [0]
  • 这将为 JSON 提供 20
    {
      "name": "Tom","age": 20
    }
    
  • 这将为 JSON 提供 null
    {
      "name": "Bob","age": 31
    }
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。