我有一个列表元素,如下所示:
[
{
"leaf101": {
"node_id": "101",
"node_name": "leaf101",
"pod_id": "1"
},
"leaf102": {
"node_id": "102",
"node_name": "leaf102",
"pod_id": "1"
},
"spine103": {
"node_id": "103",
"node_name": "spine103",
"pod_id": "1"
}
}
]
我尝试给予一个列表,将它们作为变量列在Jenkins的Active choices参数中。我的脚本如下所示:
import groovy.json.JsonSlurper
def list = []
File textfile= new File("/var/lib/jenkins/test/vars/nodes.json")
JsonSlurper slurper = new JsonSlurper()
def parsedJson = slurper.parse(textfile)
parsedJson.each {
list.add (it.node_name.toString())
}
return list;
如果我在结尾输入return parsedJson
,我会得到整个文件内容作为一个变量,我怎么能只返回像“leaf01,leaf02 ...”这样的键值呢?
先谢谢你。
1条答案
按热度按时间guicsvcw1#
我认为问题在于
it
是包含[leaf101:[node_id:101, node_name:leaf101, pod_id:1], leaf102:[node_id:102, node_name:leaf102, pod_id:1], spine103:[node_id:103, node_name:spine103, pod_id:1]]
的外部对象,所以it.node_name
不起作用,您需要迭代到模型更深的一层。例如,这将产生您所期望的结果: