how can I get value from json object in groovy

10,184

Solution 1

Your response represents JSON document and it stores it in variable of type String. You can parse it using groovy.json.JsonSlurper class. Consider following example:

import groovy.json.JsonSlurper

def RawRecordsDateRangeResponse = context.expand('${getRawRecordsForDateRange#Response}')

def json = new JsonSlurper().parseText(RawRecordsDateRangeResponse)

def url = json.'2018-09-03'

println url

Output:

https://dhap-dconnect-telemetry-data-dev2.s3.amazonaws.com/ULT/d83350d2-af56-11e8-b612-0242ac11001118/temperature/raw-2018-09-03.json

Solution 2

If it's just the key of the JSON message you need rather than the value, you could use something like:

import groovy.json.JsonSlurper

def rawRecordsDateRangeResponse = '''{"2018-09-03":"https://dhap-dconnect-telemetry-data-dev2.s3.amazonaws.com/ULT/d83350d2-af56-11e8-b612-0242ac11001118/temperature/raw-2018-09-03.json"}'''
def json = new JsonSlurper().parseText(rawRecordsDateRangeResponse)

def date = json.collect({it.key})
print date

This produces [2018-09-03].

Share:
10,184
Sweety
Author by

Sweety

Updated on June 05, 2022

Comments

  • Sweety
    Sweety almost 2 years
    def RawRecordsDateRangeResponse = context.expand('${getRawRecordsForDateRange#Response}')   
        log.info RawRecordsDateRangeResponse
    

    My response is:

    {"2018-09-03":"https://dhap-dconnect-telemetry-data-dev2.s3.amazonaws.com/ULT/d83350d2-af56-11e8-b612-0242ac11001118/temperature/raw-2018-09-03.json"}
    

    Here I want to get the value from the json response key as date.

  • sathya
    sathya over 4 years
    def link = json.collect({it.value}) prints the json value similarly .