Grails 3:Class 继承不适用于 json-视图

Grails 3 : Class inheritance not working with json-views

我正在尝试根据多态查询的结果呈现 json-views。 使用对象编组器,它可以完美地工作,但不能使用 grails3 json-views。 我尝试了各种方法,这似乎是 json-views 插件中的错误。

这里举个例子来说明问题:

class Content {
 String text
}

class BlogEntry extends Content {
    URL url
}

class Book extends Content {
    String ISBN
}

并且在 contentController 中:

class ContentController extends RestfulController<Content> {

    static responseFormats = ['json', 'xml']

    ContentController() {
        super(Content)
    }

    def index(Integer max) {
        println '*CONTENT:INDEX*'
        def contents= Content.findAll()
        respond contents 
    }
}

json 观看次数:

// /content/index.gson
model {
    Iterable<Content> contentList
}

json tmpl.content(contentList ?: [])

// /content/_content.gson
model {
    Content content
}

json g.render(content)

我从控制器的索引方法得到一个空结果。我正在使用带有视图的 grails 3.2.0.RC2-json:1.1.0.RC3

使用自定义对象编组器,我可以通过子类类型(BlogEntry、Book)获得 json 结果,这是预期的结果。

已在 grails-views v1.1.3 中解决。

https://github.com/grails/grails-views/releases/tag/v1.1.3