我正在尝试为类的每个实例添加动态属性,然后将此类对象的列表转换为json。请参考下面的示例
class Author{
String name
static hasMany=[books:Book]
}
class Book{
String title
static belongsTo=[author:Author]
}
my controller
class AuthorController{
def listAuthors={
def authorsList=Author.list()
def details=['address':'xyz', phone:'123']
authorList.each{
it.metaClass.getDetails={->details}
}
render authorsList as JSON
}
}
现在我希望这个动态添加的“details”属性也能以JSON格式呈现。请帮忙。
def a ='tim';a.metaClass.prop ='yates';println a.properties.keySet()
输出:[prop,class,bytes,empty]
,所以您可以看到我们的属性在那里。显然,字符串可能被处理为一个单独的情况,因为您不希望将“bytes”和“class”写入您的JSON;-) - tim_yatesimport net.sf.json.*; def js = new JSONSerializer(); class Thing { def one=1; def two=2; Thing(data) { data.each { k,v -> this.metaClass[k] = v } } } def obj = new Thing([aye:'a', bee:'b', cee:'c']); js.toJSON(obj)
结果:{"one":1,"two":2}
有人解决了吗? - David Pisoni