строка запроса выглядит как строка JSON. поэтому первое, что вам нужно сделать, это преобразовать его в объект json, чтобы получить к нему доступ.
const query = "[{\"property\":\"customerId\",\"value\":2,\"exactMatch\":true}]";
const json = JSON.parse(query);
теперь вы можете получить к нему доступ с помощью
json[0].value
API немного странен, но я думаю, что существует несколько лучших способов искать детей. То, что Вы получаете, когда Вы просите "xml.bar" (который существует), или "xml.quux", который не делает, является groovy.util.slurpersupport. Объект NodeChildren. В основном набор узлов, соответствующих критериям, которые Вы попросили.
Один способ видеть, существует ли конкретный узел, состоит в том, чтобы проверить на размер NodeChildren, ожидаемый размер:
def text = "<foo><bar/></foo>"
def xml = new XmlSlurper().parseText(text)
assert 1 == xml.bar.size()
assert 0 == xml.quux.size()
Иначе должен был бы использовать метод находки и видеть, является ли название узла, который возвращается (к сожалению, что-то всегда возвращается), тем, Вы ожидали:
def text = "<foo><bar/></foo>"
def xml = new XmlSlurper().parseText(text)
assert ("bar" == xml.children().find( {it.name() == "bar"})?.name())
assert ("quux" != xml.children().find( {it.name() == "quux"})?.name())
isEmpty метод на работах GPathResult.
def text = "<foo><bar/></foo>"
def xml = new XmlSlurper().parseText(text)
assert false == xml.bar.isEmpty()
Это беспокоит меня, потому что элемент панели пуст - он не имеет тела. Но я предполагаю, что GPathResult не пуст, поэтому возможно, это имеет смысл.