Как отстаивать массив JSON в Groovy

Мой ответ 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 ответа

Решение

Потому что "$category" не является строкой. Это экземпляр GStringImpl.

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

Чтобы исправить свой код, вы можете преобразовать "$category" в строку:

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

Нужна небольшая помощь здесь. До сих пор неясно, что вы на самом деле пытаетесь сделать.

Если category переменная, то вам не нужно использовать "$category" в contains()Вы можете просто использовать category если вы не оцениваете какое-то выражение.

Но если это не ваш вариант использования, и вы просто хотите избавиться от ошибки; просто добавьте escape-символ перед символом $:

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

Если бы вы могли уточнить ваш вариант использования, возможно, мы можем помочь.

Другие вопросы по тегам