json - 如何将动态添加的属性(使用元类)转换为 JSON

标签 json grails groovy

我正在尝试为类的每个实例添加一个动态属性,然后将这些对象的列表转换为 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
    }
}

现在我希望这个动态添加的“详细信息”属性也可以呈现为 JSON。请帮忙

最佳答案

如果不是创建一个 setter ,而是添加一个属性,它是否有效:

it.metaClass.details = details

如果没有,您的最佳路径可能是从您的 authorsList 创建 map 列表。 (将详细信息键/值对添加到每个映射),然后序列化这个......

关于json - 如何将动态添加的属性(使用元类)转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222461/

相关文章:

grails - 初始化使用Grails鉴别器配置的子类对象

logging - 将日志输出发送到 grails 1.3.2 中的不同文件

grails - 在grails/groovy中访问子项目应用程序属性

Grails 2.1.1 : Redirect to/index. gsp 无法与定义的过滤器一起工作

java - 阻止用户电子邮件委托(delegate)确认链接

groovy - 扩展 Groovy String 类

c# - 获取json数据和图片

java - Jackson 动态更改 JsonIgnore

jquery - 使用 jQuery grep() 过滤 JSON 数组

javascript - AngularJS,Ng-repeat 更改/更改 Json 数组的顺序