Forum Discussion

rajs2020's avatar
rajs2020
Frequent Contributor
4 years ago
Solved

Groovy best practices - How to set the root node when extracting data from a response?

See this code:

 

def jobDate = context.expand( '${GetJobInfo#Response#$[\'jobData\'][0][\'jobDate\']}' )

 


I see this kind of code too many times in a codebase. For example, it will be repeated for each variable inside jobData json object. This is an eyesore for the reader and makes it harder to understand the code.

Is there a way to set the root node in context.expand(...)? So, I could set the root node as jobData[0] and refer to all the elements inside it without using the full path.

I guess I could also create a variable rootPath and keep changing it as needed. Would that work?

  • rajs2020 : If it is an array, then instead of using context of expand you can use jsonSlurper to get the value from the array by iterating over each element. Refer below link for documentation

     

    json-slurper 

3 Replies

  • rajs2020 : If it is an array, then instead of using context of expand you can use jsonSlurper to get the value from the array by iterating over each element. Refer below link for documentation

     

    json-slurper 

    • rajs2020's avatar
      rajs2020
      Frequent Contributor

      Thanks. Is it okay to use JsonSlurper for a project at work? I wonder if this library is used widely in the software industry and specifically inside ReadyAPI. That would make me more confident about using it. I don't want a new library to become a hindrance because its hard to use, has no active maintainers etc.

      • sonya_m's avatar
        sonya_m
        SmartBear Alumni (Retired)

        Thanks, Himanshu for suggesting this!

         

        rajs2020 Yes, using the JsonSlurper class is safe. It's not from an external library. It is part of the standard goovy package (groovy.json). This package is included in the current stable version - version 3, we are using it in ReadyAPI. And, it will be part of version 4 as well.