How to compare json response with jdbc response using


This Content is from Stack Overflow. Question asked by Bob Jones

I know this question has been asked earlier. The previous response was comparison of two xml responses.
Here I need to compare json response which with jdbc’s xml response. I have made necessary changes as per my json response and jdbc response. I am still getting error that the assertion has failed. I have been struggling with this for couple of weeks. Please advise.

json response

   "meta": {"api_response_datetime_utc": "2022-09-19T04:11:42.013964Z"},
   "warnings":    [
         "id": "ABC23879",
         "issue_datetime_utc": "2022-03-07T19:21:31Z",
         "expires_datetime_utc": "2025-03-14T19:21:24Z",
         "title": "",
         "sub_title": "",
         "area_summary":          [
            "North Central",
            "North East",
            "West and South Gippsland and East Gippsland forecast districts"
         "phenomena_summary": null,
         "severity_code": ["STD"],
         "issue_type": "Update",
         "type": "WFR",
         "area_state_code": "VIC",
         "link_details": null
         "id": "BAC22000",
         "issue_datetime_utc": "2022-03-07T19:21:29Z",
         "expires_datetime_utc": "2025-03-14T19:21:24Z",
         "title": "Fire Weather",
         "sub_title": "Mallee, Northern Country, North Central and North East forecast districts",
         "area_summary":          [
            "Northern Country",
            "North Central and North East"
         "phenomena_summary": null,
         "severity_code": ["SEV"],
         "issue_type": "Alert",
         "type": "WFW",
         "area_state_code": "VIC",
         "link_details": null

jdbc response

    <ResultSet fetchSize="0">
        <Row rowNumber="1">
            <WARNINGS_VW.AREA_SUMMARY>Mallee, Northern Country, North Central and North East</WARNINGS_VW.AREA_SUMMARY>
        <Row rowNumber="2">
            <WARNINGS_VW.AREA_SUMMARY>North Central, North East, Central, West and South Gippsland and East Gippsland forecast districts</WARNINGS_VW.AREA_SUMMARY>

My Groovy Script

import groovy.json.*
import groovy.xml.*

class Model {
    def id
    def warningType
    def geocodeType
    def geocodeCode
    def areaSummary
    def warningAreaType
    def searchPolygon    

    def buildJdbcData(row) {
        row.with {
            id = WARNINGS_VW.DMP_ID
            warningType= WARNINGS_VW.WARNING_TYPE
  def buildJsonData(warnings){
    id =
    warningType = warnings.type
 def jdbcResponse = testRunner.testCase.testSteps["JDBC Request"].testRequest.response.contentAsString

 def jsonResponse = testRunner.testCase.testSteps["List1-Request1"].testRequest.response.contentAsString

//Parsing the jdbc and build the jdbc model object list
def results = new XmlSlurper().parseText(jdbcResponse)
def jdbcDataObjects = []
results.ResultSet.Row.each { row -> jdbcDataObjects.add(new Model().buildJdbcData(row))}

//Parsing the json and build the json model object list
def arrayOfTagInfo = new JsonSlurper().parseText(jsonResponse)
def jsonDataObjects = [] 
arrayOfTagInfo.TagInfo.each { tagInfo ->
    jsonDataObjects.add(new Model().buildJsonData(tagInfo))

//sorting the Data before checking for equality

assert jdbcDataObjects == jsonDataObjects, "Comparison of Jdbc XML data and Json data has failed"


This question is not yet answered, be the first one who answer using the comment. Later the confirmed answer will be published as the solution.

This Question and Answer are collected from stackoverflow and tested by JTuto community, is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?