Grails 3 глубокий JSON маршаллер

Я определил и зарегистрировал несколько пользовательских маршаллеров для своих доменных объектов. Если использовать один, просто рендеринг одного экземпляра, работает нормально, но проблема возникает, когда я возвращаю карту с массивом этих экземпляров. В этот момент мой заказной маршаллер не вызван.

Это один из моих маршаллеров:

class BackendCompanyMarshaller implements ObjectMarshaller<JSON> {

    @Override
    public boolean supports(Object object) {
        object instanceof Company
    }

    @Override
    public void marshalObject(Object object, JSON converter)
            throws ConverterException {
        JSONWriter writer = converter.getWriter()
        writer.object()
        writer.key('id').value(object.id)
        .key('name').value(object.name?.encodeAsHTML()?:'')
        .key('description').value(object.description?.encodeAsHTML()?:'')
        .key('enterprise').value(object.enterprise?.encodeAsHTML()?:'')

        writer.endObject()
    }

}

Например, вот что я возвращаю из моего контроллера:

render text:[achievements:arrayOfAchievements, total:2] as JSON

В предыдущих версиях Grails я знаю, что были глубокие маршаллеры, но я не смог найти что-то подобное для Grails 3.

Я также пытался реализовать собственный маршаллер для List, но я не уверен, что мне следует возвращать или писать.

0 ответов

Другие вопросы по тегам