我希望在我的JSON输出中包含一个类(帐户)的瞬态属性。对我来说,最好的方法是在Bootstrap.groovy中使用Bootstrap.groovy()为类创建一个自定义的JSON结构,但是我似乎无法让它工作起来。下面是我的Bootstrap.groovy代码:
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"}一些我试过但似乎没有帮助的事情:
在clean
发布于 2011-08-15 06:24:49
您使用的是哪个版本的grails?
它对我在Bootstrap.groovy中有以下内容起了作用
import grails.converters.JSON
...
JSON.registerObjectMarshaller(Bank) {
def returnArray = [:]
returnArray["name"] = it.name
return returnArray
}以下域类
class Bank implements Serializable {
String name
}控制器中的下列代码
import grails.converters.JSON
...
def jsonTest = {
def account = Bank.findById('1')
render account as JSON
}并返回以下JSON:
{"name":"Niko Securities"}注意:我只在Bootstrap和控制器中使用常规的JSON转换器,所以可能会检查您在两个地方都使用相同的转换器。
https://stackoverflow.com/questions/7061206
复制相似问题