我已经编写了一个Groovy脚本来从HTTP响应的Map中提取城市的值,其中水果应该是变量f中获得的值,颜色应该是变量c中获得的值。假设f和c的值是通过某种方法正确获得的。如果您仔细查看HTTP响应,您会发现在颜色“Red”的开头有一个额外的空格,在“黄色”的末尾有一个额外的空格。水果名称中也有额外的空格。这妨碍了我的比较。如何确保HTTP响应中单词开头和结尾的空格在比较过程中被忽略?
{
"userInformation": {
"Name": "John",
"Location": "India"
},
"details": [
{
"fruit": "Apple ",
"color": " Red",
"city": "New Delhi",
"luckyNumber": 10
},
{
"fruit": "Banana ",
"color": "yellow ",
"city": "Goa",
"luckyNumber": 12
}
]
}
这是我使用的代码-
def f = execution.getVariable("Fruits")
def c = execution.getVariable("Colors")
def cityName =httpResponse.json.details.find { it.fruit == f && it.color == c }?.city
发布于 2018-10-11 08:28:36
假设下面的s
是您提供的JSON片段,那么考虑一下(完整的示例here):
def json = new groovy.json.JsonSlurper().parseText(s)
def f = 'Apple'
def c = 'Red'
def trimCompare = { a, b ->
a.trim() == b.trim()
}
def cityName = json.details
.find { trimCompare(it.fruit,f) && trimCompare(it.color,c) }
?.city
assert 'New Delhi' == cityName
https://stackoverflow.com/questions/52750318
复制相似问题