Замена числовой переменной в json с помощью groovy

У меня есть json, в котором есть несколько чисел, которые я хочу сделать динамическими и заменить значение с помощью groovy. Пожалуйста, дайте мне знать, есть ли лучший способ, поскольку я уже использовал toInteger для преобразования, но не работал. Например, { jobName: "", protocolName: "tcp", portNo:"" } я могу заменить имя задания, которое является строкой, с помощью замены в groovy, но я не могу заменить номер порта. Окончательный json должен выглядеть так, как показано ниже.

{ имя_задания: "моя работа", имя_протокола: "tcp", номер порта: 1112}

Пожалуйста, дайте мне знать, есть ли способ сделать это в groovy


person Monish Das    schedule 20.04.2018    source источник
comment
Не могли бы вы опубликовать текущий код, который вы используете для замены строки, а также некоторые вещи, которые вы пробовали для замены целых чисел? (В идеале вы могли бы добавить минимально воспроизводимый пример)   -  person bto    schedule 20.04.2018


Ответы (1)


Что-то вроде этого:

String str = '{ "jobName":"", "protocolName":"tcp", "portNo":"" }'
def json = new JsonSlurper().parseText(str)
json.jobName = 'myJob'
json.portNo = 1112
println new JsonOutput().prettyPrint(new JsonOutput().toJson(json))
person Evgeny Smirnov    schedule 20.04.2018
comment
Это работает, и я пробовал, но у jenkins нет методов вывода или построителя в белом списке. Есть ли способ, которым groovy-код из белого списка можно использовать для преобразования - person Monish Das; 20.04.2018
comment
Не уверен, что я тебя понимаю. Вы можете использовать все функции groovy в Jenkins. - person Evgeny Smirnov; 20.04.2018