2017-01-18 10 views
12

कहें कि क्या आपके पास example.yaml नामक एक फ़ाइल है जिसमें निम्न शामिल हैं: - subject: mathsमैं ग्रोवी में वाईएएमएल फ़ाइल कैसे पार्स करूं?

- subject के बाद मैं स्ट्रिंग को कैसे पकड़ूं?

मैं पहले से ही फाइल की सामग्री पढ़ सकता हूं लेकिन यह जानना चाहता हूं कि इससे एक विशिष्ट स्ट्रिंग कैसे पकड़ें।

नोट: मुझे पता है कि रेगेक्स मदद कर सकता है लेकिन इसका कभी भी उपयोग नहीं किया है और किसी भी मदद की सराहना करता है।

+0

एक सुंदर है कि असामान्य/मुश्किल YAML कोई शीर्ष ऑब्जेक्ट वाली शीर्ष-स्तरीय सूची नहीं है। – MarkHu

उत्तर

17

सांप्यामल वाईएएमएल फाइलों को पार्स करने के लिए एक पुस्तकालय है। ग्रोवी में उपयोग करने में आसान है।

अद्यतन: बदल उदाहरण चर के प्रकार सूची में, के रूप में उदाहरण फ़ाइल के उच्च स्तर घटक एक संग्रह

@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

+0

यह त्रुटि प्राप्त करना: क्लास 'java.util.ArrayList' से कक्षा 'java.util.Map' के साथ objetct '[{subject = maths}]' को नहीं डाला जा सकता है: groovy.lang.GroovyRuntimeException: मिलान करने वाला कन्स्ट्रक्टर नहीं ढूंढ सका : java.util.Map (java.util.LinkedHashMap, java.util.LinkedHashMap) org.codehaus.groovy.runtime.typehandling.GroovyCastException: – user3412172

+0

क्या आप अपनी यम फ़ाइल का प्रतिनिधि नमूना पोस्ट कर सकते हैं? – loteq

+0

'--- - विषय: गणित '(नई लाइन) – user3412172

संबंधित मुद्दे