Forum Discussion
Gkm,
You are looping thru jsonResponseSlurper.Unit which not a JsonArray.
You can identify An array it if enclosed between [ ,]
For ex,jsonResponseSlurper.Unit.Devices is an array.
I just wanted to add all my json response values in array so that I can compare json array with my jdbc array.
How can I do this nmrao, or is there any other way?
- nmrao9 years agoCommunity HeroI am not sure the json response you attached is full or partial. It is difficult to tell Unless full json response available. I believe that you are the best just judge, which elements to loop.
- Gkm9 years agoContributor
This is just an example , my original json response has 304 values :smileyvery-happy:
I want to assert all the elements of response
- Gkm9 years agoContributor
nmrao, I have multiple values under Unit as provided Profile and UnitID, I got your point able to fetch all values of Unit.devices but unable to fetch values which are directly child of Unit like Profile and UnitID. I have so many values under Unit so yes I want to loop them as well.
- nmrao9 years agoCommunity HeroOk, so basically, your object is not that simple, putting all the values into one class. You may need to have hierarchy of objects in the model class to be able to compare.
- Gkm9 years agoContributor
Difficult to manage class , so I just break whole complex thing in sections, loop node and compare , Unit section is remaining in which I have profile , I don't know why it is returning null.
log.info jsonResponseSlurper.Unit.Profile
- nmrao9 years agoCommunity Hero
Based on the sample json, here is I would model the classes (hierarchial approach to create complex data)
Sample Json
{ "Unit": { "Profile": 12, "Devices": [ { "Id": 1, "DetailJSON": { "Name": "ALPR_1", "Profile": { "ID": 1, "BitRate": 0 }, "Index": -1 }, "PIPDetailJSON": { "Name": "ALPR_2", "Profile": { "ID": 2, "BitRate": 0, "Mode": "pip" } } } ] }, "UnitID ": 12 }Object Modeling
class Profile { def id def bitRate def mode } abstract class Details { def name Profile profile } class PipDetailJson extends Details {} class DetailJson extends Details { def index } class Device { def id DetailJson dJson PipDetailJson pJson } class Unit { def profile List<Device> devices }
/**top level object **/ class Model { Unit unit def unitId }