如何在groovy中声明数组json

时间:2018-02-20 11:55:17

标签: arrays json groovy jsonslurper

我的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")

但是收到错误。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

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

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

要修复代码,您可以将“$ category”转换为String:

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

答案 1 :(得分:0)

需要一点帮助。目前还不清楚你究竟想做什么。

如果category是变量,那么您不必在"$category"中使用contains(),除非您正在评估某些表达式,否则只需使用category

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

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

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