Можно ли написать выражение, которое найдет все объекты в массиве, где test.Value содержит "val", а test2.Value содержит "val".
Я пробовал такое выражение фильтра регулярного выражения, но возвращает все результаты, когда фильтр не должен ничего возвращать:
Код: Выделить всё
$..[?(@.test.Value[?(@ =~ /.*invalid/i)])]Код: Выделить всё
[
{
"test": {
"Value": [
"value1",
"value2"
],
},
"test2": {
"Value": [
"value3",
"value4"
],
},
}
...
]
ОБНОВЛЕНИЕ:
Решено! Кому интересно, я не видел пустой оператор фильтра. Указание того, является ли пустым значением false или true, позволяет фильтру возвращать логическое значение, а не список! Урок усвоен.
- Пример отсутствия совпадения...
Результат: false (элемент списка слева пуст, поэтому пусто false) не встречается)
- Пример поиска совпадений...
Результат: true ( элемент списка слева заполнен, поэтому пустой false оценивается как true)
Подробнее здесь: https://stackoverflow.com/questions/778 ... of-strings
Мобильная версия