我在阅读JSON文件时面临一些问题。 我正在使用Jenkins Active Choice Parameter通过groovy脚本从JSON文件中读取值。这就是我的JSON文件的外观。
{
"smoke": "Test1.js",
"default": "Test2.js"
}
我希望我的groovy脚本打印出烟雾和默认值。下面是我的groovy代码的样子。
import groovy.json.JsonSlurper
def inputFile = new File(".\TestSuitesJ.json")
def InputJSON = new JsonSlurper().parseText(inputFile)
InputJson.each
{
return[
key
]
}
以上代码对我不起作用。有人可以建议一个更好的groovy方式吗?
答案 0 :(得分:2)
你真的应该阅读groovy开发工具包页面,特别是this。
因为在您的情况下parseText()
会返回LazyMap
个实例,您在每个闭包中获得的it
变量代表Map.Entry
个实例。所以你可以println it.key
得到你想要的东西。
更加时髦的方式是:
inputJson.each { k, v ->
println k
}
在这种情况下,groovy为你的闭包传递关键字(k)和地图中每个元素的值(v)。
答案 1 :(得分:2)
在尝试在运行时导入JSON文件时遇到类似情况的任何人。我使用Active Choice参数来解决我的问题。可以选择在Jenkins的Active Choice参数插件中编写groovy脚本。我在下面编写了代码来导入JSON文件以获得所需的结果。
import groovy.json.JsonSlurper
def inputFile = new File('.//TestSuitesJ.json')
def inputJSON = new JsonSlurper().parse(inputFile)
def keys = inputJSON.keySet() as List
感谢@sensei帮助我学习groovy。