Filtering/Selecting groovy 中 Json 中索引的数组值

Filtering/Selecting array values from index in Json in groovy

正在尝试筛选选择性索引。 Fieldid 值随着每次构建而变化,不变的是 fieldName": "TX.Sessionval.cost"。需要过滤掉整个stringval存入变量

fieldName": "TX.Sessionval.cost"
[
  {
   "Fieldid": "Fieldid/112",
    "fieldName": "TX.Sessionval.cost",
    "stringval": "jklah-dw-4c8d-8320-das313s3ASsda|000725N8WuUrfwAS7alP|banker_name"
  }
]

尝试def slurper = new JsonSlurper() def result = slurper.parseText(response.getResponseBodyContent()) def newf = result.findAll { it.contains("TX.Sessionval.cost") }得到groovy.lang.MissingMethodException:没有方法签名:java.util.LinkedHashMap$Entry.contains()

在 Postman 定位器中工作正常

postman.setEnvironmentVariable("Stdid", jsonData.newFields[112].stringValue)

你问题中的JSON是错误的。从你的工作中推断 代码,这应该可以工作:

result.newFields.find{ it.fieldName == "TX.Sessionval.cost" }?.stringValue

这对我有用 result.newFields.findAll { Map map -> map.get("fieldName").contains("TX.Sessionval.cost") }?.stringValue