rAJ
rAJ

Reputation: 1433

Get the first key from JSON response using JMeter JSON extractor

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?

Upvotes: 1

Views: 934

Answers (3)

Jyoti Prakash Mallick
Jyoti Prakash Mallick

Reputation: 2076

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

Upvotes: 1

Dmitri T
Dmitri T

Reputation: 168157

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

Upvotes: 4

rollno748
rollno748

Reputation: 344

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

Upvotes: 2

Related Questions