skip to Main Content

I am getting below response while running an API.

{
    "bookingId": 0,
    "bookingIds": {
        "13320134": "2023-05-01T04:30:00",
        "13320135": "2023-05-02T04:30:00",
        "13320136": "2023-05-03T04:30:00"
    },
    "conflictDates": null,
    "recurrenceID": 1710459
}

I want to get the first value inside ‘bookingIds’

13320134

What I tried:

$.bookingIds.13320134

Output

[
  "2023-05-01T04:30:00"
]

Is it possible using JSON extractor or do I need to achieve this using javascript?

3

Answers


  1. I guess the Json Extractor is desined to extract the values and not keys.

    You can have multiple extractors to do the job for you

    1. Use the json extractor to get the entire bookingIds Object
    2. Use a Regex extractor to filter the first key from the extracted json output

    enter image description here

    enter image description here

    enter image description here

    Login or Signup to reply.
  2. I don’t think you can get keys using JSON Extractor.

    It’s possible with:

    1. JSON JMESPath Extractor:

      query: bookingIds | keys (@) [0]

      enter image description here

      enter image description here

    2. JSR223 PostProcessor with Groovy language:

      new groovy.json.JsonSlurper().parse(prev.getResponseData()).bookingIds.keySet()[0]
      

      enter image description here

    Login or Signup to reply.
  3. Based upon your comment (as mentioned the second one is getting selected), you can use a JSR223 Post processer and add the following code,

    import groovy.json.JsonSlurper;
    import java.util.regex.Pattern;
    
    
    def response = new groovy.json.JsonSlurper().parse(prev.getResponseData());
    def bkId = [];
    
    response.bookingIds.each { bookingIdsFetched-> 
        bkId << bookingIdsFetched
    }
    def value = bkId[0].toString();
    def pattern = Pattern.compile('(.+?)=');
    def (_, refValue) = (value =~ pattern)[0]
    
    log.info("Reference Value : "+refValue)
    

    enter image description here

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search