grails web服务json id字段

时间:2012-06-14 21:13:58

标签: json grails

我创建了一个返回一些json的小型Web服务,返回的json值如下所示:

[{"class":"simple.web.service.Stock","id":null,"name":"GOOG","price":123.45},   {"class":"simple.web.service.Stock","id":null,"name":"APPL","price":345.67}]

我的对象不包含 id 字段。它来自哪里?它应该如何填充?

另外,是否包含字段标准?如果我不想包含该怎么办?

1 个答案:

答案 0 :(得分:1)

id属性默认情况下在域对象上创建,就像version一样(除非您明确告诉它不要包含version)。两者都在正常使用情况下自动设置和维护。如果需要,您可以控制如何创建/填充ID - 请参阅manual

出于安全原因,默认情况下,JSON构造函数不会返回实际的id或版本。要包含它们或不包含其他项目,您可能需要创建自定义JSON marshallers。

您的Bootstrap中的此类内容仅包含nameprice

import grails.converters.JSON
class BootStrap {
    def init = {servletContext ->
        JSON.registerObjectMarshaller(Stock) {
            def returnArray = [:]
            returnArray['name'] = it.name
            returnArray['price'] = it.price
            return returnArray
    }

}