groovy - 如何使用groovy断言json响应内容?

标签 groovy jsonslurper

在请求的响应中我有以下内容:

"comp":[
{
"type":"header",
"version":1,
"settings":
     {"logo":"mylogo",
      "logoPosition":"left",
      "inverseLogosPosition":false,
      "headerTitle":"My Report",
      "headerTitlePosition":"left",
      "pageBreak":false
}
},

我想断言设置的内容。 例如,我尝试这样做来断言 logoPosition = "left"

断言 json.components.settings[0].logoPosition[0] == "left"

它不工作

这部分运行良好:

assert json.comp.type[0] == "header"
assert json.comp.version[0] == 1

请大家帮忙,谢谢

最佳答案

提供的 json 无效。您可以使用两个路径:

assert slurped.comp.settings.logoPosition[0] == "left"
assert slurped.comp[0].settings.logoPosition == "left"

完整示例:

import groovy.json.JsonSlurper

def json = '''{
"comp":[
    {
        "type":"header",
        "version":1,
        "settings": {
            "logo":"mylogo",
            "logoPosition":"left",
            "inverseLogosPosition":false,    
            "headerTitle":"My Report",    
            "headerTitlePosition":"left",        
            "pageBreak":false
        }
    }
]}'''

def slurped = new JsonSlurper().parseText(json)

assert slurped.comp.settings.logoPosition[0] == "left"
assert slurped.comp[0].settings.logoPosition == "left"

关于groovy - 如何使用groovy断言json响应内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122119/

相关文章:

spring-boot - 如何使用 gradle 6+ 和 java 11+ 在 spring boot 中配置 spock

groovy - 如何使用 groovy 跨多个 cucumber 步骤定义文件共享变量

jenkins - Jenkins groovy 文件中的 File.exists() 不起作用

json - 当条件满足时,使用 Groovy 从 JSON 中提取嵌套的 Maps/EntrySets

groovy - JsonSlurper 执行失败

jenkins - 如何通过 groovy 脚本获取正在运行的 jenkins 构建列表?

jenkins - 在 Jenkins 从属设备上使用 CURL 下载 zip 文件时无法创建文件

json - Groovy:验证 JSON 字符串

json - 在Groovy中从JSONArray删除特定的JSONObject