У меня есть строка в 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]]
Я знаю, что Jenkins и Groovy различаются по-разному, но из поиска в Интернете другие предполагают, что я должен иметь возможность использовать библиотеку LAX JsonSlurper в моем конвейере groovy. Я пытаюсь избежать ручной конвертации моей собственной строки в конвертер карт и предпочел бы использовать библиотеку, если она есть. Какая может быть разница, которая может вызвать такое поведение?