处理对象编组器中的hasMany关系

时间:2013-08-09 09:47:22

标签: json grails gorm

我正在Grails 2.2.4中编写自定义JSON对象marshaller。我正在尝试转换为JSON的类同时具有belongsTo和hasMany关系。我可以访问belongsTo信息,大概是因为关系是1- *但我无法以相同的方式访问hasMany信息。以下是我正在使用的代码:

JSON.registerObjectMarshaller( Event){
        Event event -> return [
            id : event.id,
            schoolName : event?.school?.name,
            teachers : [
                teacherName: event?.TEACHERS.toString(),
                ],
            ]
    }

teacherName: event?.TEACHERS.toString(),用于证明我可以访问有效的教师列表。我想我需要能够遍历列表,但我不确定如何在这种情况下这样做。

由于

1 个答案:

答案 0 :(得分:3)

在这里结合选择:

1)为教师设置编组。然后在Event的marshaller中,你可以做到:

teachers : event?.teachers

2)如果您不想为教师设置编组,请执行以下操作:

JSON.registerObjectMarshaller(Event){ Event event -> 
    [ 
        id : event.id,
        schoolName : event?.school?.name,
        teachers : event.teachers.collect{ Teacher teacher ->
            [id: teacher.id, name: teacher.name]
        }
    ]
}