[英]How to get all children (and their subchildren) in a yaml file using snakeyaml
所以我遇到过snakeyaml 。 我知道如何使用java yaml.load(inputStream);
获取密钥java yaml.load(inputStream);
那将返回一个字符串和一个对象的哈希图。 只是为了演示,我有一个带有值的yaml文件:
player:
randie:
score: 4
当我使用
File file = new File("test")
FileInputStream stream = new FileInputStream(file);
Map<String, Object> map = yaml.load(stream);
for (String str : map.keySet()) {
System.out.println(map.get(str));
}
输出为:
{randie={score=4}}
我在其他计算器问题,比如来到这个
我想获得最里面的“嵌套”值中的值,而不使用线程中正确答案提供的哈希表列表
谢谢
您可以创建代表yaml文件结构的类,然后以正确的格式加载它。
public class Result {
private Player player;
public Player getPlayer() {
return player;
}
public void setPlayer(Player player) {
this.player = player;
}
}
public class Player {
private Randie randie;
public Randie getRandie() {
return randie;
}
public void setRandie(Randie randie) {
this.randie = randie;
}
}
public class Randie {
private int score;
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
然后使用loadAs
函数加载它。
public class YamlDataInterpreter {
public static void main(String[] args) {
YamlDataInterpreter intepreter = new YamlDataInterpreter();
intepreter.interpretYaml();
}
public void interpretYaml() {
InputStream stream = this.getClass().getClassLoader()
.getResourceAsStream("data.yml");
Yaml yaml = new Yaml();
Result res = yaml.loadAs(stream, Result.class);
System.out.println(res.getPlayer().getRandie().getScore());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.