JQ: Выберите несколько условий

У меня есть json, и на данный момент я использую select, чтобы получить только данные, соответствующие одному условию, мне нужно фильтровать на основе большего количества условий.

Например:

.[] | select((.processedBarsVolume <= 5) && .processedBars > 0)

Как я могу это сделать?


person Andrei Colta    schedule 10.10.2015    source источник


Ответы (1)


jq поддерживает обычные логические операторы и / или / нет, поэтому это будет выглядеть так:

.[] | select((.processedBarsVolume <= 5) and .processedBars > 0)
person Hans Z.    schedule 10.10.2015
comment
есть ли причина для дополнительных скобок вокруг .processedBarsVolume <= 5? - person ssc; 30.08.2018
comment
Нет, просто сохранил разницу с предложением OP до соответствующего минимума - person Hans Z.; 30.08.2018
comment
кажется маловероятным, что когда-нибудь получит любимую галочку на этом этапе - person JDS; 13.11.2018
comment
Примечание: символы и / или / not чувствительны к регистру. И / ИЛИ не работают. - person Joseph Larson; 11.02.2020
comment
Обильные скобки в jq. Приоритет оператора немного неинтуитивен, если вы привыкли к императивным языкам, и плохо документирован в превосходном руководстве. - person Leo; 04.10.2020
comment
Вот документация для and/or/not: stedolan.github.io/jq/manual/ # и / или / нет - person Martin von Wittich; 05.05.2021