0

我的 JSON 响应如下所示

{
    "pCategories": [
        "pogc1",
        "pogc16",
        "pogc2",
        "testc1122",
        "testcat10012018",
        "testcat10012019",
        "testcat100120191",
        "testcat11012018",
        "testcat12012018",
        "testcat120120181",
        "testcat20112017",
        "testcat20112018"
    ]
}

我已经使用下面的代码来断言。

def slurped = new JsonSlurper().parseText(response.asString())
assert slurped.pCategories.contains("$category")

但是得到一个错误。

我该如何解决?

4

2 回答 2

1

因为“$category”不是字符串。它是 GStringImpl 的一个实例。

def category = 'pogc16'
assert 'pogc16'.equals("$category") // false

要修复您的代码,您可以将“$category”转换为字符串:

assert slurped.pCategories.contains("$category".toString())
于 2018-02-20T13:16:06.660 回答
0

在这里需要一点帮助。目前还不清楚你实际上想要做什么。

如果category是一个变量,那么您不必使用"$category"in contains(),您可以简单地使用category,除非您正在评估某个表达式。

但是,如果这不是您的用例,而您只想摆脱错误;只需在 $ 符号前添加一个转义字符:

assert slurped.pCategories.contains("\$category")

如果您可以详细说明您的用例,也许我们可以提供帮助。

于 2018-02-21T10:17:54.047 回答