2017-01-18 20 views
12

, aşağıdakileri içeren example.yaml adlı bir dosyanız varsa: - subject: maths.YAML dosyasını nasıl groovy olarak ayrıştırırım?

- subject'dan sonra dizeyi nasıl yakalarım?

Zaten dosyanın içeriğini okuyabiliyorum, ancak belirli bir dizenin nasıl çekileceğini öğrenmek istiyorum.

not: regex'in yardımcı olabileceğini biliyorum, hiç kullanmadım ve herhangi bir yardım için minnettarım.

+0

:

GÜNCELLEME: örnek dosyanın üst düzey öğe koleksiyonu snakeyaml ait

@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} 

Tüm belgeler olduğu gibi örnek değişkeninin değişti tipi Listeye sıra dışı/zor YAML, üst nesne olmayan üst düzey bir listeye sahip olmak için. – MarkHu

cevap

17

snakeyaml, YAML dosyalarını ayrıştırmak için bir kütüphanedir. Groovy içinde kullanımı kolay. Oldukça var

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

+0

Bu hatayı alma: 'java.util.ArrayList' sınıfına 'java.util.ArrayList' sınıfının 'java.util.Map' sınıfına 'embed' edilememesi nedeniyle: groovy.lang.GroovyRuntimeException: Eşleşen kurucu bulunamadı : java.util.Map (java.util.LinkedHashMap, java.util.LinkedHashMap) org.codehaus.groovy.runtime.typehandling.GroovyCastException: – user3412172

+0

Yaml dosyanızın temsili bir örneğini gönderir misiniz? – loteq

+0

--- --- - konu: matematik (yeni satır) – user3412172