首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy遍历映射映射

Groovy遍历映射映射
EN

Stack Overflow用户
提问于 2022-06-23 23:53:12
回答 1查看 50关注 0票数 0

假设我有张地图:

代码语言:javascript
复制
Map exampleMap = ["person1": ["firstName": "John", "lastName": "Doe", "id": "1"], "person2": ["firstName": "Jane", "lastName": "Doe", "id": "2"]]

我想迭代这个Map并打印出键和值。

例如:

代码语言:javascript
复制
exampleMap.each{ item, key ->
    println item[key]
    println item["firstName"]
    println item["lastName"]

}

我想要的样本输出:

代码语言:javascript
复制
person1
John
Doe

上面的方法给了我一个错误:

代码语言:javascript
复制
Caught: groovy.lang.MissingPropertyException: No such property: firstName for class: java.util.LinkedHashMap$Entry

我试过:

代码语言:javascript
复制
Map exampleMap = ["person1": ["firstName": "John", "lastName": "Doe", "id": "1"], "person2": ["firstName": "Jane", "lastName": "Doe", "id": "2"]] as ConfigObject
def props = exampleMap.toProperties()

但是它将输出key作为一个person1.firstName。是否可以只输出person1

或者什么是最好的方法来解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-24 00:00:13

您混淆了闭包参数顺序:

代码语言:javascript
复制
Map exampleMap = ["person1": ["firstName": "John", "lastName": "Doe", "id": "1"], "person2": ["firstName": "Jane", "lastName": "Doe", "id": "2"]]

exampleMap.each{ key, item ->
    println key
    println item["firstName"]
    println item["lastName"]
}

Groovy Web控制台里试一试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72737705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档