gpt4 book ai didi

grails - Grails/Groovy向现有Java类添加属性,而在尝试使用JSON转换器进行序列化时丢失它们?

转载 作者:行者123 更新时间:2023-12-02 14:59:06 24 4
gpt4 key购买 nike

我想知道我在向中添加动态属性时缺少什么
java类,并尝试使用JSON转换器呈现该类。
我有一个纯净的Java pojo,并使用以下方法为其添加了动态属性:

// adding property
ResetRequest.metaClass.targetIp = "192.168.0.1"
// creating object
ResetRequest obj = new ResetRequest()
// printing the properties
println obj.properties

打印属性时,对象具有附加属性
叫做“targetIp”,所以看起来一切正常,但是当我尝试渲染对象时
作为JSON,添加的属性不在JSON字符串中。

任何建议我所缺少的。

最佳答案

我认为grails中的JSON转换不会获取动态添加的属性。

也许您应该为该类(class)注册自己的对象编码?

在 bootstrap 中:

    def init = {servletContext ->
JSON.registerObjectMarshaller(ResetRequest) {req->
[
targetIp:req.targetIp
//etc
]
}

更新
此链接显示了如何继承默认的Marshaller并添加自己的逻辑以编码特定字段:

http://grails4you.com/2012/04/restful-api-for-grails-domains/

关于grails - Grails/Groovy向现有Java类添加属性,而在尝试使用JSON转换器进行序列化时丢失它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com