Использование jq Я хотел бы проверить на наличие определенного значения ключа в JSON ниже, например, что «ПРЕДУПРЕЖДЕНИЕ» произошло как " (даже один раз) независимо от количества возвращаемых объектов, так что я возвращаю логическое значение. Для простоты у меня есть 2 объекта ниже, но это может быть 2000jq - Как проверить на наличие определенного значения в ответе JSON
{
"events": [
{
"severity": "WARNING",
"status": "",
"time_raised": "1454502910919",
"data_1": "00000000",
"data_2": "00000000",
"data_3": "00000000",
"register_0": "40000",
"register_1": "4",
"register_2": "10",
"register_3": "0"
},
{
"severity": "ERROR",
"status": "",
"time_raised": "1454502840915",
"data_1": "00000000",
"data_2": "00000000",
"data_3": "00000000",
"register_0": "50000",
"register_1": "4",
"register_2": "8",
"register_3": "0"
}
]
}
Мой подход был, чтобы попытаться с помощью «содержит» фильтр, как так
jq .events[]|.severity|contains("WARNING")
который выводит
true
false
Поскольку я хочу вернуть одно логическое значение, я попытался объединить значения в одну строку или массив перед использованием 'contains', но я не могу найти способ сделать это.
Я предпочел бы сохранить логику в jq, поэтому я надеюсь, что я пропустил лес из деревьев и что в jq есть простой способ сделать это.
Я думаю, что «содержит» было введено на примере OP из-за попытки объединить все значения '.severity' в единицу; 'jq '.events | любой (.severity == "WARNING") ''должно быть достаточно. –