简体   繁体   中英

Conditional jsonpath expressions not working in groovy script, jmeter

Conditional jsonpath expression: 
    $.[?(@.identifier == "369")]..columns.[?(@.type == "relationship")].token
  • Problem 01: groovy script in jsr233 post processor not parsing the jsonpath expression.
  • Problem 02: I need to loop identifier value in groovy or beanshell and fetch multiple array.
import groovy.json.JsonSlurper

JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(prev.getResponseDataAsString())

//String idval = parsedJson.sections[1].id

//String idval = parsedJson.[?(@.identifier == "369")]..columns.[?(@.type == "relationship")].token //trail 01 -failed at .[

String idval = parsedJson./[?(@.identifier == "369")]/..columns./[?(@.type == "relationship")]/.token  //trail 02 -no such property: columns for class

log.info(""+idval);

You cannot use JSON Path expressions with the JsonSlurper , consider either using find() / findAll() functions on the returned collection or moving to JsonPath instead

def idval = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '?($..sections[@.identifier == "369")]..columns.[?(@.type == "relationship")]')

More information: Apache Groovy - Why and How You Should Use It

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM