在Grails中将模型作为JSON返回时,如何处理延迟加载的引用

时间:2011-12-06 19:25:30

标签: json grails gorm

在Grails中,我有一个模型类User,它与另一个模型类Address有一对一的映射。从我的控制器返回JSON格式的用户时,我从未看到地址类,只有id。在我的用户类中,我有:

class User {

    Address address

    ...

    static mapping = {
        ...
        address fetch: 'join'               
        ...
    }

然后在我的控制器中我做了

User user = user.get(1)
render user as JSON

有没有办法更改映射以使'as JSON'拉回地址类?

我在Grails 1.3.7上运行。

2 个答案:

答案 0 :(得分:4)

有两种类型的JSON转换器,即:

grails.converters.deep.JSON
grails.converters.JSON



你需要的是深度转换器, 只需将导入的类更改为:

    // Dont Use: import grails.converters.JSON
    import grails.converters.deep.JSON

注意: Grails 1.3.7导入grails.converters.deep.JSON为fiine,在Grails 2.0中已弃用。

这两者之间的区别在于,“Deep”还将JSON化嵌套类,而标准转换器则不会。

希望有帮助

此致

Kushal

答案 1 :(得分:1)

您是否尝试将转换器设置为深度?

JSON.use( “深”){   用户user = user.get(1)   将用户渲染为JSON }

自定义对象Marshallers周围有一些你可以深入研究的内容,但我的第一次尝试就是尝试深度转换。