2017-01-18 17 views
12

nói rằng nếu bạn có tệp có tên là example.yaml có chứa các thông tin sau: - subject: maths.Làm cách nào để phân tích cú pháp tệp YAML trong groovy?

Làm cách nào để lấy chuỗi sau - subject?

Tôi đã có thể đọc nội dung của tệp nhưng muốn biết cách lấy một chuỗi cụ thể từ đó.

lưu ý: tôi biết regex có thể giúp nhưng chưa bao giờ sử dụng nó và sẽ đánh giá cao bất kỳ trợ giúp nào.

+0

Đó là một khá YAML bất thường/khéo léo để có một danh sách cấp cao nhất không có đối tượng cha mẹ. – MarkHu

Trả lời

17

snakeyaml là thư viện để phân tích cú pháp các tệp YAML. Dễ sử dụng trong groovy.

UPDATE: thay đổi kiểu của biến ví dụ để Liệt, như yếu tố cấp cao nhất ví dụ tập tin là một bộ sưu tập

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

Full tài liệu của snakeyaml:

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

+0

Nhận lỗi này: Không thể truyền objetct '[{subject = maths}]' với lớp 'java.util.ArrayList' vào lớp 'java.util.Map' do: groovy.lang.GroovyRuntimeException: Không thể tìm thấy hàm tạo phù hợp cho : java.util.Map (java.util.LinkedHashMap, java.util.LinkedHashMap) org.codehaus.groovy.runtime.typehandling.GroovyCastException: – user3412172

+0

Bạn có thể đăng một mẫu đại diện cho tệp yaml của mình không? – loteq

+0

'--- - subject: maths' (dòng mới) – user3412172

Các vấn đề liên quan