import groovy.yaml.YamlSlurper
def exampleYaml = '''\
---
- subject: "maths"
- subject: "chemistry"
'''
List example = new YamlSlurper().parseText(exampleYaml)
// If your source is a File
// List example = new YamlSlurper().parse("example.yaml" as File)
example.each{println it.subject}
对于以前的版本(原始答案):
snakeyaml是一个解析YAML文件的库,易于在groovy中使用。
UPDATE:将示例变量的类型更改为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}
2条答案
按热度按时间f4t66c6m1#
我在这里添加相同的示例,但使用原生
YAMLSlurper
(Groovy 3.x+)实现:对于以前的版本(原始答案):
snakeyaml
是一个解析YAML文件的库,易于在groovy中使用。UPDATE:将示例变量的类型更改为List,因为示例文件的顶级元素是集合
snakeyaml
的完整文档:https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation
to94eoyn2#
FWIW,即将发布的(撰写本文时)Groovy 3.0版直接支持yaml:http://docs.groovy-lang.org/next/html/api/groovy/yaml/package-summary.html与传统的YamlSlurper / YamlBuilder组合您可以随时切换到这个尚未正式发布的版本。
[编辑]版本3.0.x现在已经正式发布,其中包含groovy.yaml包http://docs.groovy-lang.org/latest/html/api/groovy/yaml/package-summary.html