Как отстаивать массив 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")
Если бы вы могли уточнить ваш вариант использования, возможно, мы можем помочь.