我有一个简单的动作,例如:
def showSomething() {
render Color.get(params.id) as JSON
}
这会将Color类中的所有属性呈现为JSON。但是,如果我只想呈现两个属性,例如colorName and shade
?
答案 0 :(得分:2)
这很简单:
def relevantProperties = ["colorName","shade"]
def color = Color.get(params.id)
def reply = relevantProperties.collectEntries { property ->
[property, color[property]]
}
render reply as JSON
你在: - )
答案 1 :(得分:2)
如果要在每次渲染对象时渲染相同的属性,Gjordis都有正确的选项。但是,您可以这样做:
Color color = Color.get(params.id)
render ([colorName: color.colorName, shade: color.shade] as JSON)
答案 2 :(得分:1)
import grails.converters.JSON
class BootStrap {
def init = {servletContext ->
JSON.registerObjectMarshaller(Color) {
def returnArray = [:]
returnArray['shade'] = it.shade
returnArray['colorName'] = it.colorName
return returnArray
}
}
有人可以纠正我,我没有用过grails。但是重写转换中调用的函数是关键。