def jsonString = """{
    "menu": {
         "id": "file",
         "value": "File",
         "popup": {
              "menuitem": [
                   {
                       "value": "New", 
                       "onclick": ["CreateNewDoc()","hai"],
                       "newnode":"added"
                   }
              ]
          }
      }
}"""

def printDetails = { key, value -> println "Key - $key, its value is \"${value}\" and is of typpe ${value.class}" }

def showMap = { map -> map.collect { k, v -> printDetails (k,v) } }

def json = new groovy.json.JsonSlurper().parseText(jsonString)
def mItem = json.menu.popup.menuitem
if (mItem instanceof List) {
   mItem.collect { showMap it  }
}
println 'done'