Скрипт на Groovy вызывает внешнюю функцию, которая берёт с сервера набор данных в виде пар ключ-значение и возвращает их скрипту в виде такого многострочного стринга:
{
"TEST_NAME" : "test1",
"SUCCESS" : "False"
}
Как из неё проще всего извлечь данные? Пока нужно только проверить условие SUCCESS = True, но в дальнейшем может понадобиться что-то более сложное. В идеале требуется простой способ превратить такой стринг в Map, не требующий внешних библиотек. Парсить регулярными выражениями? Или есть более простые способы?
Если интересны подробности, это потребовалось для взаимодействия Дженкинса с ActiveMQ. Груви начал изучать только вчера. Так как скрипты выполняются с кучей ограничений, не думаю, что позволит импортировать groovy.json.JsonBuilder/JsonSlurper.
Ответ: позволил :)
import groovy.json.JsonSlurper
node {
stage('Start process') {
sendCIMessage failOnError: true,
messageContent: '',
messageProperties: '',
messageType: 'Custom',
overrides: [],
providerName: 'Sender'
}
stage('Get answer') {
def messageContent =
waitForCIMessage checks: [],
providerName: 'Receiver',
selector: 'TEST_NAME = test1'
timeout: 1
echo messageContent
def jsonSlurper = new JsonSlurper()
def map = jsonSlurper.parseText( messageContent )
if (map.SUCCESS == 'True')
print 'succeeded'
else if (map.SUCCESS == 'False')
print 'failed'
else
print 'wrong answer'
}
}