Я пытаюсь использовать JSON-Views в Grails 3.1.Создайте JSON с JSON-Views
У меня есть следующий контроллер:
package myapp
BasketController {
def index(ProductFilterCommand cmd) {
[basketList: service.findAllBaskets()]
}
}
И следующие классы:
package myapp
class Basket {
List<BasketItem> items
}
class BasketItem {
String name
}
здесь являются gson файлы, которые я думал, что будет работать:
корзина/index.gson
import myapp.Basket
model {
Iterable<Basket> basketList
}
json.baskets(basketList) {
g.render(template: "basket", model: [basket: it])
}
корзина/_basket.gson
import myapp.Basket
model {
Basket basket
}
json.items(basket.items) {
g.render(template: "item", model:[item: it])
}
корзина/_item.gson
import myapp.Item
model {
Item item
}
json g.render(item)
Я хочу, чтобы генерировать JSON, такие как:
{
"baskets": [{
"items": [{
"name": "T-shirt"
}, {
"name": "Pants"
}]
}, {
"items": [{
"name": "T-shirt"
}, {
"name": "Pants"
}]
}]
}
Но вместо этого я получаю:
{
"baskets": [
{},
{}
]
}
'Basket',' BasketItem' - Являются ли они классы домена? – dmahapatro
Спасибо @dmahapatro Это сработало отлично. Я принял ваш ответ. Прости за мой запоздалый ответ. они не были классами доменов, а просто классными классами. –
Для POGO, в отличие от классов домена, все эти церемонии и шаблоны не требуются, просто 'json {baskets basketList}' в 'index.gson' даст ожидаемый результат, поэтому мой вопрос ранее. Очевидно, вам понадобится 'model' dsl для basketList. :) – dmahapatro