如何解决仅当 JMESPATH
{
"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 举报,一经查实,本站将立刻删除。