首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在与Groovy中httpResponse的值进行比较时忽略空白

在与Groovy中httpResponse的值进行比较时忽略空白
EN

Stack Overflow用户
提问于 2018-10-11 08:00:25
回答 1查看 302关注 0票数 0

我已经编写了一个Groovy脚本来从HTTP响应的Map中提取城市的值,其中水果应该是变量f中获得的值,颜色应该是变量c中获得的值。假设f和c的值是通过某种方法正确获得的。如果您仔细查看HTTP响应,您会发现在颜色“Red”的开头有一个额外的空格,在“黄色”的末尾有一个额外的空格。水果名称中也有额外的空格。这妨碍了我的比较。如何确保HTTP响应中单词开头和结尾的空格在比较过程中被忽略?

代码语言:javascript
复制
{
    "userInformation": {
        "Name": "John",
        "Location": "India"
    },
    "details": [
        {
            "fruit": "Apple  ",
            "color": " Red",
            "city": "New Delhi",
            "luckyNumber": 10
        },
        {
            "fruit": "Banana ",
            "color": "yellow ",
            "city": "Goa",
            "luckyNumber": 12
         }
         ]
         }

这是我使用的代码-

代码语言:javascript
复制
def f = execution.getVariable("Fruits") 
def c = execution.getVariable("Colors") 
def cityName =httpResponse.json.details.find { it.fruit == f  && it.color == c }?.city
EN

回答 1

Stack Overflow用户

发布于 2018-10-11 08:28:36

假设下面的s是您提供的JSON片段,那么考虑一下(完整的示例here):

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52750318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档