我有一个哈希图
[enable_api_security:[BOOL:false], owner:[S:abcd], approvers:[L:[[S:abcd]]]}
我希望它是这样的简单对象
{enable_api_security: false, owner: abcd, approvers: abcd}
如何实现?任何帮助将不胜感激。
答案 0 :(得分:0)
在Groovy中,您可以通过对象的metaClass
以编程方式将新属性添加到任何对象:
Object mapped = new Object()
mapped.metaClass."myNewProperty" = valueObj
然后,您可以像在自定义对象中的任何其他属性一样访问此新属性:
assert mapped.myNewProperty.equals(valueObj)
然后,使用这些功能,您可以在自定义对象中为给定Map
中的每个条目创建一个新属性(以其相应的值初始化),如以下工作演示中所示:
import java.time.LocalDateTime
Map properties = [enable_api_security: false, owner: 'Hello', time: LocalDateTime.now()]
Object enhanced = new Object()
properties.each { key, value ->
enhanced.metaClass."$key" = value
}
println enhanced.enable_api_security
println enhanced.owner
println enhanced.time
希望这会有所帮助。