3
我想在我的JSON输出中为我的一个类(Account)包含瞬态属性。对我来说,最好的方法是使用Bootstrap.groovy中的JSON.grailsObjectMarshaller()为我的类创建一个自定义的JSON结构,但是我似乎无法使它工作。这里是我的代码BootStrap.groovy中:无法获取JSON.registerObjectMarshaller()在Grails 1.3.7中创建自定义JSON
import grails.converters.deep.JSON
import stocks.Account
class BootStrap {
def init = { servletContext ->
JSON.registerObjectMarshaller(Account, {
println("test")
def returnArray = [:]
returnArray['email'] = it.email
returnArray['test'] = "success"
return returnArray
})
}
def destroy = {
}
}
这里是我的AccountController.groovy代码:
def jsonTest = {
def account = Account.findById('1')
render account as JSON
}
,这里是我的输出,它充当如果我没有叫JSON .registerObjectMarshaller()在所有:
{"class":"stocks.Account","id":1,"email":"ian...","firstName":"Ian"}
的事情,我已经试过了,但似乎并没有帮助:
- Grails的清洁
- 上JSON.registerObjectMarshaller()
- 使用常规JSON转换器提高优先级为1,而不是深转换器
我正在使用版本1.3.7。您?我会再试一次并回报。 –
使用常规的JSON转换器工作。我想你不能在深层转换器中使用objectMarshaller。这是不幸的,但我想我会做出应有的。 –