Я бы предпочел использовать функции Utility конвейеров Jenkins вместо классных классов.Ниже работает трубопровод.В конце я упростила вывод на экран, чтобы проверить результат использования команды bash cat.Но результат - то, что вы хотите, я думаю.
node('linux') {
def content = """
{
"app":{ },
"at":2,
"badv":[ ],
"bcat":[ ],
"device":[ {
"carrier":"310-410",
"connectiontype":3,
"devicetype":1,
"dnt":0,
"dpidmd5":"268d403db34e32c45869bb1401247af9",
"dpidsha1":"1234"
},
{
"carrier":"310-410",
"connectiontype":3,
"devicetype":1,
"dnt":0,
"dpidmd5":"268d403db34e32c45869bb1401247af9",
"dpidsha1":"1234"
}]
}"""
def slurped = readJSON text: content
println (slurped)
def builder = slurped
builder.device.find{it.dpidsha1 == "1234"}.dpidsha1= "abcd"
println(builder)
writeJSON file: 'uselessfile.json', json: builder, pretty: 4
sh 'cat uselessfile.json'
}