Неудачный запрос делает это, потому что ассоциативность не то, что вы хотите. Добавление скобок, чтобы прояснить ваши намерения, как правило, является неплохой идеей:
if .foo == "bar"
and ([.bazes[] | .bat=="blah"] | any)
then .add = "added"
else . end
any / 2
Вы можете обойти проблему, найти более эффективное решение и более точно соответствовать Engli sh использование с использованием any/2
:
if .foo == "bar"
and any(.bazes[]; .bat=="blah")
then .add = "added"
else . end