json - 在 Groovy 中将 hashmap 转换为简单对象
问题描述
我有一个哈希图
[enable_api_security:[BOOL:false], owner:[S:abcd], approvers:[L:[[S:abcd]]]}
我希望它是这样的简单对象
{enable_api_security: false, owner: abcd, approvers: abcd}
如何做到这一点?任何帮助,将不胜感激。
解决方案
在 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
希望这可以帮助。
推荐阅读
- json - JSON_QUERY 无法处理 NULL
- machine-learning - 验证准确性停滞不前,而训练准确性提高
- c - 如何在c89中定义浮点双精度常量
- cors - CORS 协议不允许同时指定通配符(任何)来源和凭证
- javascript - 如何在 HighCharts 的点击函数中访问外部范围变量
- oop - 为什么需要扩展对象?
- c# - 如何在 botframework V4 中的每个对话框上访问存储而不进行依赖注入
- android - 我收到错误未找到 id 0x7f09007c 的视图
- arrays - Angular-6:将字符串转换为自定义对象的数组
- css - 使用 Angular 7+ 和 Angular Material 更改占位符颜色?