使用嵌套键从Groovy中的嵌套地图获取价值

时间:2020-02-13 16:53:37

标签: groovy

假设我有这样的嵌套地图

def someMap = [
   a : [
      b : [
         c : "value",
         d : "anothervalue"
      ]
   ]
]

我在运行时以字符串形式获取密钥。说是“ a.b.c”

如何从地图中提取值?

我知道我可以做myMap.a.b.c,但是对我来说,“ a.b.c”是单个字符串,我在运行时就知道了吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以像这样沿着节点走,然后尝试获取相应的子节点:

def key = "a.b.c"
def entry = someMap
key.split('\\.').each { entry = entry?.get(it) }
println entry?.value