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

为什么人们使用 JMESPath 而不是 JQ?

如何解决为什么人们使用 JMESPath 而不是 JQ?

我需要使用一些使用 JMESPath 搜索 JSON 的系统。但是我发现它缺少很多重要的功能。比方说,搜索带有模式(如this)的字符串非常困难。 JMESPath 不支持正则表达式。添加拆分功能的提议自 2017 年以来已被冻结(如 thisthis)。这些特性对 jq 都是可用的。所以我想知道为什么像 AWS S3 CLI 和 Ansible 这样的系统使用 JMESPath 而不是 jq 来查询 JSON?

解决方法

与其说是 JMESPath 和 jq 之间的区别,不如说是它们使用的不同方式。

假设您正在查询远程资源,结果将有数百万条记录,但您只关心记录的一个特定的、小得多的子集。你有两个选择:

  1. 将所有记录通过网络传输给您,然后在本地挑选您想要的记录
  2. 将您的过滤器发送到远程资源,并让进行过滤,只向您发送响应。

jq 通常用于前者,JMESPath 用于后者。远程服务没有理由不能接受 jq 过滤器,或者您不能使用基于 JMESPath 的可执行文件。

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