目前我正在使用Grails开发RESTFull。我使用findAll方法来检索特定数据:
def query = PlannedEvent.where{}
query = query.where{rooms.id == i }
respond query.findAll()
和生成输出的响应方法:
{"class":"mp.ra.PlannedEvent","id":480,"baseEvent":{"class":"Event","id":1636},"equipment":[],"rooms":[{"class":"Room","id":22}]}
如何更改结果,以便提供有关baseEvent和Room的更多信息。
课程设置如下:
class PlannedEvent {
Event baseEvent
static hasMany = [rooms:Room,equipment:Resource]
static belongsTo = [Room,Event,Resource]
static constraints = {
equipment nullable:true
}
答案 0 :(得分:2)
您需要的是PlannedEvent域类的自定义JSON Marshaller。基本上你需要实现自己的marshller然后注册它。
这是关于如何实现自己的自定义JSON编组的优秀blog post。
通过这种方式,您可以准确控制所有内容被编组到JSON中。