2

我已经为我的域对象定义并注册了一些自定义编组器。如果单独使用,只渲染一个实例,工作正常,但是当我返回一个包含这些实例数组的地图时,问题就来了。在这一刻,我的自定义编组器没有被调用。

这是我的编组之一:

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()
    }

}

Ans 例如,这是我从控制器返回的内容:

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

在以前的 grails 版本中,我知道有深度编组器,但我无法为 grails 3 找到类似的东西。

我也尝试为 List 实现一个自定义编组器,但我不确定我应该返回或写什么。

4

0 回答 0