今天尝试了下使用JYaml类库解析Yaml文档。
现有Yaml文档.travis.yml如下:
language: java
sudo: false
cache:
directories:
- $HOME/.m2
jdk:
- oraclejdk8
- oraclejdk7
- openjdk7
script:
- mvn clean install -Pqulice --errors --batch-mode
使用JYaml类库中的函数 YamlStream org.ho.yaml.Yaml.loadStream(File arg0) 可以将yml文档中内容读取到流中。
Java代码如下:
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.ho.yaml.Yaml;
import org.ho.yaml.YamlStream;
/**
*
* @author Tsybius2014
* @date 2016年3月2日
* @time 下午10:35:50
* @remark
*
*/
public class JyamlTest {
/**
* 使用JYaml解析YAML文档
* @param args
*/
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
try {
File file = new File(".travis.yml");
YamlStream stream = Yaml.loadStream(file);
for (Iterator iter = stream.iterator(); iter.hasNext();) {
HashMap hashMap = (HashMap) iter.next();
// System.out.println(hashMap);
for (Iterator iter2 = hashMap.entrySet().iterator(); iter2.hasNext();) {
Map.Entry entry = (Map.Entry) iter2.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("key's type = " + key.getClass());
System.out.println("value's type = " + value.getClass());
System.out.println("key = " + key + ", value = " + value);
System.out.println("=================================");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
文档读取到一个HashMap中,每个key都是一个字符串,每个value视yaml文档实际情况而定。
上面的代码输出结果为:
key's type = class java.lang.String
value's type = class java.util.ArrayList
key = jdk, value = [oraclejdk8, oraclejdk7, openjdk7]
=================================
key's type = class java.lang.String
value's type = class java.util.HashMap
key = cache, value = {directories=[$HOME/.m2]}
=================================
key's type = class java.lang.String
value's type = class java.lang.String
key = language, value = java
=================================
key's type = class java.lang.String
value's type = class java.lang.Boolean
key = sudo, value = false
=================================
key's type = class java.lang.String
value's type = class java.util.ArrayList
key = script, value = [mvn clean install -Pqulice --errors --batch-mode]
=================================
END