需要帮助来使用groovy和Jenkins读取json文件

时间:2016-09-29 20:23:31

标签: jenkins groovy jenkins-plugins

我在阅读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方式吗?

2 个答案:

答案 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。