Ваш код выдает
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[]' with class 'java.util.ArrayList' to class 'java.util.Map' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.util.Map()
, потому что вы присвоили пустой список карте в этой строке:
Map<String,Object> docList = []
Замените его на List
и реорганизуйте код (такdocList
инициализируется до name
) и будет работать:
import groovy.json.JsonBuilder
Map doc = [
docName: "",
docType: ""
]
List docList = []
doc.docName = "test"
doc.docType = "docx"
docList.add(doc)
Map name = [
firstName : "",
lastName : "",
middleName: "",
documents : docList
]
println new JsonBuilder(name).toPrettyString()
Выход:
{
"firstName": "",
"lastName": "",
"middleName": "",
"documents": [
{
"docName": "test",
"docType": "docx"
}
]
}