Take a look at the following script it's a very rough and ready stand alone script that might help, it loops through each of the 8 "options" displaying the count of the name/value pairs:
import groovy.json.JsonSlurper
def jsonData = """{
"_embedded" : {
"categories" : [
{
"name" : "Allergen",
"value" : "Allergen",
"options" : [
{
"name" : "Antibiotic allergy",
"value" : "Antibiotic allergy"
},
{
"name" : "Antihypertensive allergy",
"value" : "Antihypertensive allergy"
},
{
"name" : "Aspirin allergy",
"value" : "Aspirin allergy"
},
{
"name" : "Corn",
"value" : "Corn"
},
{
"name" : "Egg",
"value" : "Egg"
},
{
"name" : "Eggs",
"value" : "Eggs"
},
{
"name" : "Fish",
"value" : "Fish"
},
{
"name" : "Gluten",
"value" : "Gluten"
},
{
"name" : "Ibuprofen allergy",
"value" : "Ibuprofen allergy"
},
{
"name" : "Insulin allergy",
"value" : "Insulin allergy"
},
{
"name" : "Kosher",
"value" : "Kosher"
},
{
"name" : "Milk",
"value" : "Milk"
},
{
"name" : "Nonsteroidal allergy",
"value" : "Nonsteroidal allergy"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Peanut",
"value" : "Peanut"
},
{
"name" : "Penicillin allergy",
"value" : "Penicillin allergy"
},
{
"name" : "ShellFish",
"value" : "ShellFish"
},
{
"name" : "Soy",
"value" : "Soy"
},
{
"name" : "Tree Nut",
"value" : "Tree Nut"
},
{
"name" : "Tree Nuts",
"value" : "Tree Nuts"
},
{
"name" : "Vegan",
"value" : "Vegan"
},
{
"name" : "Vegetarian",
"value" : "Vegetarian"
},
{
"name" : "Wheat",
"value" : "Wheat"
}
]
},
{
"name" : "Colour",
"value" : "Colour",
"options" : [
{
"name" : "Blue",
"value" : "Blue"
},
{
"name" : "Green",
"value" : "Green"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Red",
"value" : "Red"
}
]
},
{
"name" : "Drinks",
"value" : "Drinks",
"options" : [
{
"name" : "Absinthe",
"value" : "Absinthe"
},
{
"name" : "Apple",
"value" : "Apple"
},
{
"name" : "Ballantines",
"value" : "Ballantines"
},
{
"name" : "Bud light",
"value" : "Bud light"
},
{
"name" : "Carlsberg",
"value" : "Carlsberg"
},
{
"name" : "Chardonnay",
"value" : "Chardonnay"
},
{
"name" : "Corona",
"value" : "Corona"
},
{
"name" : "Gin & Tonic",
"value" : "Gin & Tonic"
},
{
"name" : "Glenfiddich",
"value" : "Glenfiddich"
},
{
"name" : "Heineken",
"value" : "Heineken"
},
{
"name" : "Johnnie Walker",
"value" : "Johnnie Walker"
},
{
"name" : "Lemon Drop Martini",
"value" : "Lemon Drop Martini"
},
{
"name" : "McCallan",
"value" : "McCallan"
},
{
"name" : "Miller",
"value" : "Miller"
},
{
"name" : "Mint Julep",
"value" : "Mint Julep"
},
{
"name" : "Mixed Fruit",
"value" : "Mixed Fruit"
},
{
"name" : "Mojito",
"value" : "Mojito"
},
{
"name" : "Old Fashioned",
"value" : "Old Fashioned"
},
{
"name" : "Orange",
"value" : "Orange"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Red Wine",
"value" : "Red Wine"
},
{
"name" : "Strawberry Daiquiri",
"value" : "Strawberry Daiquiri"
},
{
"name" : "Tequila",
"value" : "Tequila"
},
{
"name" : "White Wine",
"value" : "White Wine"
}
]
},
{
"name" : "Food",
"value" : "Food",
"options" : [
{
"name" : "Caviar",
"value" : "Caviar"
},
{
"name" : "Chim Chum",
"value" : "Chim Chum"
},
{
"name" : "Chowmein",
"value" : "Chowmein"
},
{
"name" : "Fajitas",
"value" : "Fajitas"
},
{
"name" : "Garlic Prawn Risotto",
"value" : "Garlic Prawn Risotto"
},
{
"name" : "Indian Cury",
"value" : "Indian Cury"
},
{
"name" : "Noodle Soup",
"value" : "Noodle Soup"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Pasta",
"value" : "Pasta"
},
{
"name" : "Pizza",
"value" : "Pizza"
},
{
"name" : "Seafood",
"value" : "Seafood"
},
{
"name" : "Suki",
"value" : "Suki"
},
{
"name" : "Tortillas",
"value" : "Tortillas"
},
{
"name" : "Vegetable Au Gratin",
"value" : "Vegetable Au Gratin"
},
{
"name" : "Yam Chin Kai",
"value" : "Yam Chin Kai"
}
]
},
{
"name" : "Leisure",
"value" : "Leisure",
"options" : [
{
"name" : "Cinema",
"value" : "Cinema"
},
{
"name" : "Cosplay",
"value" : "Cosplay"
},
{
"name" : "Exercise",
"value" : "Exercise"
},
{
"name" : "Fishing",
"value" : "Fishing"
},
{
"name" : "Luxury Vacation Style",
"value" : "Luxury Vacation Style"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Reading",
"value" : "Reading"
},
{
"name" : "Story Telling",
"value" : "Story Telling"
}
]
},
{
"name" : "Music",
"value" : "Music",
"options" : [
{
"name" : "Blues",
"value" : "Blues"
},
{
"name" : "Classic Rock",
"value" : "Classic Rock"
},
{
"name" : "Jazz",
"value" : "Jazz"
},
{
"name" : "Opera",
"value" : "Opera"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Pop",
"value" : "Pop"
},
{
"name" : "Rock",
"value" : "Rock"
}
]
},
{
"name" : "Spa",
"value" : "Spa",
"options" : [
{
"name" : "Ayurvedic Spa",
"value" : "Ayurvedic Spa"
},
{
"name" : "Cruise Ship Spa",
"value" : "Cruise Ship Spa"
},
{
"name" : "Hot Tub",
"value" : "Hot Tub"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
}
]
},
{
"name" : "Sports",
"value" : "Sports",
"options" : [
{
"name" : "Air Hockey",
"value" : "Air Hockey"
},
{
"name" : "Baseball",
"value" : "Baseball"
},
{
"name" : "BasketBall",
"value" : "BasketBall"
},
{
"name" : "Carrom",
"value" : "Carrom"
},
{
"name" : "Chess",
"value" : "Chess"
},
{
"name" : "Football",
"value" : "Football"
},
{
"name" : "Golf",
"value" : "Golf"
},
{
"name" : "Ice Polo",
"value" : "Ice Polo"
},
{
"name" : "Jet Skiing",
"value" : "Jet Skiing"
},
{
"name" : "Others(Specify)",
"value" : "Others(Specify)"
},
{
"name" : "Para-Sailing",
"value" : "Para-Sailing"
},
{
"name" : "Rock",
"value" : "Rock"
},
{
"name" : "Scuba-Diving",
"value" : "Scuba-Diving"
},
{
"name" : "Skurfing",
"value" : "Skurfing"
},
{
"name" : "Table Tennis",
"value" : "Table Tennis"
},
{
"name" : "VolleyBall",
"value" : "VolleyBall"
}
]
}
]
}
}
"""
def rootNode = new JsonSlurper().parseText(jsonData)
def expectedsize=rootNode._embedded.categories.options.size()
def countOfNameValuPairs = 0
log.info('Count of "options" nodes = ' + expectedsize)
rootNode._embedded.categories.options.each() {option ->
log.info(option.size())
countOfNameValuPairs = countOfNameValuPairs + option.size()
}
log.info('Total count of name value pairs = ' + countOfNameValuePairs)