我有以下映射表示类别树:
class Category {
String name
static belongsTo = [parent: Category]
static hasMany = [categories: Category]
}
我想要做的是渲染所有类别树并从渲染中排除字段parent
。
render category as JSON
仅呈现第一级层次结构,并且不呈现子类别的名称。 即有以下树:
根 - > cat2-> CAT4 cat3
我有
{"class":"project.Category",
"id":1,
"categories":[{"class":"Category","id":2},
{"class":"Category","id":3}],
"name":"Root",
"parent":null}
我不想要“class”和“parent”属性,并希望在此树中看到cat4数据。
是否有一些特殊的lib或插件,或者可以配置标准的JSON转换器或域类?
答案 0 :(得分:2)
您可以尝试通过JSONBuilder构建自定义JSON:
render(builder:'json') {
id(category.id)
name(category.name)
categories {
category.categories?.each {
categories (
id: it.id,
name: it.name
)
}
}
}
答案 1 :(得分:0)
我认为你必须自己做: - /
类似的东西:
def categoryToMap( cat ) {
def a = [ id:cat.id, name:cat.name ]
if( cat.categories ) a << [ categories:cat.categories.collect { categoryToMap( it ) } ]
a
}
然后像:
render categoryToMap( category ) as JSON
答案 2 :(得分:0)