Есть ли способ встраивать массивы JSON с помощью JSONBuilder в Groovy? Точнее, у меня есть приложение Grails, что нужно, чтобы сделать что-то вроде этого:Groovy JSONBuilder с вложенным массивом в Grails
{
"event": {
"type": "1.0",
"templates": [
{
"template":{
"window": {
"type1": "id-1",
"type2": "id-2"
},
"object": {
"id-1": {
"type": "classA",
"others": [
{
"var": "thing1",
"mixed": "no"
}
]
},
"id-2": {
"type": "classB",
"others": [
{
"var": "thing1",
"mixed": "yes"
}
]
}
}
}
}
]
}
}
У меня возникли некоторые проблемы с получением моего контроллера Grails, чтобы построить это с помощью функции render
, а также в явном виде с использованием JSONBuilder в службе.
Все работает, за исключением того, что объект «шаблон» внутри массива «шаблоны» не получает визуализацию. Вот код, который делает рендеринг:
render(contentType: "text/json") {
event {
type = "1.0"
templates = array {
template = {
window = {
type1 = "id-1"
type2 = "id-2"
}
object = {
"${ 'id-1' }" {
type = "classA"
others = array {
otherArr(var:"thing1", mixed:"yes")
}
}
"${ 'id-2' }" {
type = "classB"
others = array {
otherArr(var:"thing1", mixed:"yes")
}
}
}
}
}
}
}
Это не работает для меня. Появляется следующее сообщение об ошибке: «Misplaced key: ожидаемый режим KEY, но был OBJECT. Stacktrace следует: Сообщение: Misplaced ключ: ожидаемый режим KEY, но был OBJECT Линия | Метод - >> 199 | Значение в grails.converters.JSON' – anthonylawson
Извините, моя ошибка. Мое первоначальное предложение не сработало. После немного большего количества экспериментов я придумал что-то, что работает и отредактировал мой ответ соответственно –