Прямым решением было бы использование Groovy eval
функциональности.
Проблема в том, что для него должны быть подготовлены входные данные: вам нужно вставить кавычки в нужных местах.
Отсюда и код:
def a = '''[
prDetails:[
[prInfo:[pull_request:https://github.com/kiek/nanny-test3/pull/17, organization:kiek, repository:nanny-test3, pr_number:17], authors:[abc@dmc.com]],
[prInfo:[pull_request:https://github.com/kiek/nanny-test3/pull/18, organization:kiek, repository:nanny-test3, pr_number:18], authors:[kis@dmc.com,crc@dmc.com]]
],
authors:[abc@dmc.com,crc@dmc.com,kis@dmc.com],
buildCause:BranchEventCause
]'''
a = a.replaceAll( /:([^,\[\]\n]+)/, ':"$1"' ) // add " to map's values
a = a.replaceAll( /\[([^:\[\]]+)\]/, '["$1"]' ) // add " inside arrays
a = a.replaceAll( /(\w),(\w)/, '$1","$2' ) // add " around ,
Map map = Eval.me a
assert map.prDetails[0].authors[0] == 'abc@dmc.com'