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