title: Parsing child nodes of JSON response in SOAP UI using groovy json slurper
body: <p>I am getting a JSON response from an webservice like below . I want to parse all childs of results node using Groovy Json slurper and assert the value is correct.  </p>
  
  <pre><code>{
     "status": "Healthy",
     "results":    [
              {
       "name": "Microservice one",
       "status": "Healthy",
       "description": "Url check MSOneURI success : status(OK)"
    },
          {
       "name": "Microservice two",
       "status": "Healthy",
       "description": "Url check MSTwoURI success : status(OK)"
   },
          {
       "name": "Microservice three",
       "status": "Healthy",
       "description": "Url check MSThreeURI success : status(OK)"
    },
          {
       "name": "Microservice four",
       "status": "Healthy",
       "description": "Url check MSFourURI success : status(OK)"
    },
          {
       "name": "Microservice five",
       "status": "Healthy",
       "description": "Url check MSFiveURI success : status(OK)"
    }
     ]
  }
  </code></pre>
  
  <p>This is what I have done - this works . </p>
  
  <pre><code>//imports
  import groovy.json.JsonSlurper
  import groovy.json.*
  
  //grab the response
  def ResponseMessage = messageExchange.response.responseContent
  // trim starting and ending double quotes
  def TrimResponse     =ResponseMessage.replaceAll('^\"|\"$','').replaceAll('/\\/','')
  
  //define a JsonSlurper
  def jsonSlurper = new JsonSlurper().parseText(TrimResponse)
  //verify the response to be validated  isn't empty
  assert !(jsonSlurper.isEmpty())
  
  
  //verify the Json response Shows Correct Values 
  assert jsonSlurper.status == "Healthy"
  def ActualMsNames = jsonSlurper.results*.name.toString()
  def ActualMsStatus = jsonSlurper.results*.status.toString()
  def ActualMsDescription = jsonSlurper.results*.description.toString()
  
  
  def ExpectedMsNames = "[Microservice one,Microservice two,Microservice three,Microservice four,Microservice five]"
  def ExpectedMsStatus = "[Healthy, Healthy, Healthy, Healthy, Healthy]"
  def ExpectedMsDescription = "[Url check MSOneURI success : status(OK),Url check MSTwoURI success : status(OK),Url check MSThreeURI success : status(OK),Url check MSFourURI success : status(OK),Url check MSFiveURI success : status(OK)]"
  
  assert ActualMsNames==ExpectedMsNames
  assert ActualMsStatus==ExpectedMsStatus
  assert ActualMsDescription==ExpectedMsDescription
  </code></pre>
  
  <p>But I want to make it better using some kind of for loop which will parse each collection one at a time and assert the value of "name", "status" and "descriptions" at once for each child </p>
  
  <p>Is that possible?</p>