我使用域对象与Grails中的数据库进行交互。
当我在域对象上使用list()方法来获取数据库中的所有行时,除了一件事之外它的效果很好。为每一行返回的对象还包括一个名为" class"的属性。我已经阅读了一些关于创建自定义编组器的内容,这些编组器允许我从对象中删除该属性。这真的是不必返回类属性的最佳方法吗?
谢谢!
答案 0 :(得分:0)
您也可以使用JSON.registerObjectMarshaller
,如下所示:
// BootStrap.groovy
JSON.registerObjectMarshaller( YourDomain ) {
it.properties.findAll { it.name != 'class' }
}
请参阅here以获取类似示例。
答案 1 :(得分:0)
这是一个更改Grails默认呈现JSON的方式的链接: http://grails.org/doc/2.4.4/guide/single.html#defaultRenderers
只需将“NameOfDomainClass”更改为要以不同方式呈现的类。在这种情况下,域类。
import grails.rest.render.json.*
beans = {
bookRenderer(JsonRenderer, NameOfClass) {
excludes = ['class']
}
}