У меня есть строка в groovy, которую я хочу преобразовать в карту. Когда я запускаю код на своем локальном компьютере через сценарий groovy для тестирования, у меня не возникает проблем, и возвращается ленивая карта. Затем я могу преобразовать это в обычную карту, и жизнь продолжается. Когда я пытаюсь использовать тот же код в своем конвейере Jenkins DSL, я сталкиваюсь с исключением
groovy.json.internal.Exceptions$JsonInternalException: Not that kind of map
Вот фрагмент кода, о котором идет речь:
import groovy.json.*
String string1 = "{value1={blue green=true, red pink=true, gold silver=true}, value2={red gold=false}, value3={silver brown=false}}"
def stringToMapConverter(String stringToBeConverted){
formattedString = stringToBeConverted.replace("=", ":")
def jsonSlurper = new JsonSlurper().setType(JsonParserType.LAX)
def mapOfString = jsonSlurper.parseText(formattedString)
return mapOfString
}
def returnedValue = stringToMapConverter(string1)
println(returnedValue)
возвращаемое значение:
[value2:[red gold:false], value1:[red pink:true, gold silver:true, blue green:true], value3:[silver brown:false]]
Я знаю, что Дженкинс и Groovy отличаются по-разному, но из поисковых запросов в Интернете другие предполагают, что я должен иметь возможность использовать библиотеку LAX JsonSlurper в моем groovy конвейере. Я пытаюсь избежать ручного сворачивания моей собственной строки в конвертер карт и предпочел бы использовать библиотеку, если она там есть. Какая здесь может быть разница, которая бы вызывала такое поведение?