如何在groovy中解析YAML文件?

use*_*172 23 groovy yaml

如果你有一个名为的文件example.yaml包含以下内容: - subject: maths.

我怎么抓住字符串- subject

我已经可以阅读该文件的内容,但想知道如何从中获取特定的字符串.

注意:我知道正则表达式可能有所帮助,但从未使用它,并会感谢任何帮助.

Lui*_*ñiz 27

snakeyaml是一个解析YAML文件的库.易于在groovy中使用.

更新:将示例变量的类型更改为List,因为示例文件的顶级元素是集合

@Grab('org.yaml:snakeyaml:1.17')

import org.yaml.snakeyaml.Yaml

Yaml parser = new Yaml()
List example = parser.load(("example.yaml" as File).text)

example.each{println it.subject}
Run Code Online (Sandbox Code Playgroud)

关于snakeyaml的完整文档:

https://bitbucket.org/asomov/snakeyaml/wiki/Documentation


Pat*_* M. 9

FWIW,即将到来的(在撰写本文时)Groovy 3.0版已直接支持yaml:http : //docs.groovy-lang.org/next/html/api/groovy/yaml/package-summary.html与传统YamlSlurper / YamlBuilder组合您始终可以切换到此尚未正式发布的版本。

  • @Boris确实是的,尽管您现在可以使用内置函数“readYaml”https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#readyaml-read-yaml-from-files -在工作区或文本中 (3认同)