kumar
kumar

Reputation: 9387

Get key in groovy maps

def map = [name:"Gromit", likes:"cheese", id:1234]

I would like to access map in such a way that I can get the key

something like the output should be

map.keys returns array of string. basically i just want to get the keys

output:

name
likes
id

Upvotes: 60

Views: 145953

Answers (2)

Om Prakash
Om Prakash

Reputation: 853

def map = [name:"Gromit", likes:"cheese", id:1234]
    
println map*.key

In groovy * is use for iterate all

Upvotes: 13

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 298818

try map.keySet()

and if you want an array:

map.keySet() as String[]; // thx @tim_yates

Or, more groovy-ish:

map.each{
    key, value -> print key;
}

Warning: In Jenkins, the groovy-ish example is subtly broken, as it depends on an iterator. Iterators aren't safe in Jenkins Pipeline code unless wrapped in a @NonCPS function.

Upvotes: 101

Related Questions