簡體   English   中英

如何在 groovy 中解析 YAML 文件?

[英]How do I parse a YAML file in groovy?

假設您有一個名為example.yaml的文件,其中包含以下內容: - subject: maths

我如何在- subject之后抓取字符串?

我已經可以讀取文件的內容,但想知道如何從中獲取特定的字符串。

注意:我知道正則表達式可能會有所幫助,但從未使用過它,希望得到任何幫助。

更新 (2020)

Groovy 3 現在包含一個groovy.yaml.YamlSlurper (類似於JsonSlurper / XmlSlurper

對於以前的版本(原始答案)

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}

snakeyaml 的完整文檔:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM