Выражение jayway jsonpath находит значение в коллекции строкJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Выражение jayway jsonpath находит значение в коллекции строк

Сообщение Anonymous »

У вас возникли трудности с созданием выражения фильтра с использованием jayway jsonpath для моего приложения Java, и вы хотите узнать, возможно ли следующее?
Можно ли написать выражение, которое найдет все объекты в массиве, где test.Value содержит "val", а test2.Value содержит "val".
Я пробовал такое выражение фильтра регулярного выражения, но возвращает все результаты, когда фильтр не должен ничего возвращать:

Код: Выделить всё

$..[?(@.test.Value[?(@ =~ /.*invalid/i)])]

Код: Выделить всё

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

Подробнее здесь: https://stackoverflow.com/questions/778 ... of-strings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»