使用 JSONSlurper 传递列表中 JSON 的第二级

Using JSONSlurper to pass second level of JSON in list

我在我的一个 Jenkins 插件中使用 Groovy 和 JSON Slurper。 下面是我使用的代码:

import groovy.json.JsonSlurper
def inputFile = new File('.\TestSuitesJ.json')
def inputJSON = new JsonSlurper().parse(inputFile)
def keys = inputJSON.keySet() as List

我的测试套件是这样定义的:

{
  "Website1": {
  "smoke": "spec1.js",
  "default": "spec2.js"
  },
  "Website2": {
  "smoke": 
  ["spec1.js",
  "spec2.js",
  "spec3.js"],
  "default": 
  ["spec1.js",
  "spec5.js"],
  "TestSuite2":
  ["spec1.js"]
  }
}

如果我使用上面的代码,目前我的列表包含如下值:

Website1 Website2

但是我希望它包含如下值:select Website2:

smoke default Testsuite2

有人可以推荐一个方法吗?我尝试了以下代码,但它不起作用:

import groovy.json.JsonSlurper
def inputFile = new File('.\TestSuitesJ.json')
def inputJSON = new JsonSlurper().parse(inputFile)
def keys = inputJSON.keySet('Website2') as List

试试这个方法:

import groovy.json.JsonSlurper

def input = '''{
  "Website1": {
     "smoke": "spec1.js",
     "default": "spec2.js"
  },
  "Website2": {
     "smoke": 
        ["spec1.js",
         "spec2.js",
         "spec3.js"],
     "default": 
        ["spec1.js",
         "spec5.js"],
      "TestSuite2":
        ["spec1.js"]
    }
}'''

def inputJSON = new JsonSlurper().parseText(input)
def keys = inputJSON.Website2.keySet()