遵循以下澄清:
使用jq表达式,如何使用中间映射数组从json数组返回项目?
我尝试实施解决方案:
[.links[] | select(.from == "product1") | .to] as $colors | [.hits[] | select(.id | IN($colors[])) | .name]
但是我的应用程序(Spring Boot Apache Camel)给了我这个错误:“函数 IN/1 不存在”。
如果我使用“in”而不是“IN”,我会得到:“has() 不适用于 STRING”。
我正在使用 Apache Camel 4.0.0(带有相同版本的camel-jq)。
如何访问此函数或用提供相同结果的函数替换它?
使用等效的
select(IN($colors[]; .id))
或 select(any($colors[] == .id; .))
(这就是 builtin.jq
中定义过滤器的方式)
或者选择基于
INDEX
的解决方案,该解决方案也在您最初的问题下提出:)