Reputation: 1433
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
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)
Upvotes: 1
Reputation: 168157
I don't think you can get keys using JSON Extractor.
It's possible with:
query: bookingIds | keys (@) [0]
JSR223 PostProcessor with Groovy language:
new groovy.json.JsonSlurper().parse(prev.getResponseData()).bookingIds.keySet()[0]
Upvotes: 4
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
Upvotes: 2