58
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
Sean Patrick Floyd
  • 292,901
  • 67
  • 465
  • 588
kumar
  • 8,207
  • 20
  • 85
  • 176

2 Answers2

96

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.

Sean Patrick Floyd
  • 292,901
  • 67
  • 465
  • 588
9
def map = [name:"Gromit", likes:"cheese", id:1234]
    
println map*.key

In groovy * is use for iterate all

Om Prakash
  • 793
  • 7
  • 14