我有以下域对象
class ProductQuantity implements Comparable {
static constraints = {
}
Integer quantity
static mapping = {
version false
}
static belongsTo = Product
static hasMany = [products:Product]
int compareTo(obj) {
quantity.compareTo(obj.quantity)
}
}
我想返回一个看起来像这样的JSON字符串[50,100,200]
使用gorm,是否可以轻松地完成此操作而无需循环对象并创建一个集合?
我从这里开始
def availableQuantities = ProductQuantity.findAll()
有什么建议吗?
答案 0 :(得分:1)
假设您是从控制器执行此操作:
ProductQuantity.list() as JSON
您可以通过多种方式控制json:
1 /在Bootstrap.groovy中注册JSON编组:
class Bootstrap {
def init = { servletContext ->
JSON.registerObjectMarshaller(ProductQuantity) {
return it.quantity
}
}
}
2 /对于您的简单情况,您还可以向ProductQuantity类添加一个toString方法,该类返回quantity属性
3 /对于更复杂的用例,您可以创建自定义命名配置(如果要从同一域类生成不同类型的JSON)。 See this post