从变量Groovy获取YAML值

new9mtju  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(172)

我有一个具有以下结构的YAML文件

key1: value 1 
key2:
  - value 21
  - value 22
key3:
  - key31: value 311
    key32: value 321
    key33: value 331

我需要访问值331,所以我有这样的代码:

@Grab('org.yaml:snakeyaml:1.26')
import org.yaml.snakeyaml.Yaml

 // parse the yaml 
def yaml = new Yaml().load(new FileReader("file.yaml"))
def var1 = "key3"
def var2 = "key33"

println yaml.key3.key33 // this is getting value 331
println yaml.$var1.$var2 // this is getting null

有没有其他方法可以用给定的变量得到这个值?
请注意,这是Jenkins管道的一部分。
非常感谢你。

wrrgggsh

wrrgggsh1#

您可以简单地使用readYaml步骤来读取Jenkins Pipeline中的YAML文件

def yaml = readYaml file: 'file.yaml'                

def var1 = "key3"
def var2 = "key33"
println yaml.key3.key33 
println yaml."$var1"."$var2"

正如你在上面看到的,我已经用双引号把你的动态变量括起来了,这将告诉Jenkins插入它们。

相关问题