当前位置: 首页 > 知识库问答 >
问题:

如何使用snakeyaml获取yaml文件中的所有子级(及其子级)

宰坚
2023-03-14

所以我和蛇怪打过交道。我知道如何使用java yaml.load(inputStream)获取它们的密钥;返回字符串和对象的hashmap。为了演示,我有一个包含值的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}}

共有1个答案

薛英卫
2023-03-14
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;
    } 
}
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());
    }
}

https://github.com/kenavr/snakeyaml-示例

 类似资料:
  • 我使用Spring Batch MultiResourceItemReader来读取多个模块文件。这些文件位于父目录及其子目录中。 已经尝试: > 使用PathMatchingResourcePatterResolver,如代码示例中所示(灵感来自JAR中的查找资源与PathMatchingResourcePatterResolver和URLClassloader

  • 考虑以下代码: 我唯一发现的是: dump(Object data)方法接受Java对象并生成YAML文档 和 是只有我一个人,还是文档感觉非常神秘和指定?其中一半是关于我甚至从未听说过的特殊应用。我只看着它就觉得自己很傻,这让我有点生气。 不管怎样;如果你能给我任何帮助,我将不胜感激。

  • 是否有任何方法可以使用java编辑/删除YAMLfile中的值。 我正在使用struts2-jquery-grid,其中数据将从YAML文件中填充。现在,如果我编辑字段,它应该保存在YAML文件中。我能够分别使用yaml.load()和yaml.dump()从YAML格式的文件中读取值并将值写入文件。但是,我没有任何想法来编辑和删除特定的字段。 我经历过http://code.google.com

  • 我正在尝试构建一个函数,该函数将应用于一个数组,并将提取其所有非数组的值。 对于那些是数组的数组,它将再次执行相同的过程,直到来自第一个数组、其子数组、子数组自己的子数组等的所有值都将被放入单个数组。 我面临的问题在于,我事先不知道每个阵列将有多少子阵列,以此类推。 我尝试过的: 我尝试过使用,如下所示,但正如我上面所说的,子数组的数量和值通常是未知的。我相信某种循环甚至递归都会有所帮助,但我无法

  • 问题内容: 使用此代码 返回特定目录中文件夹和文件的总和,而不用关心 子目录 。我想获取目录及其子目录中所有文件的数量。 PS:返回所有文件和文件夹的总和几乎无关紧要。 任何帮助表示赞赏,谢谢 问题答案: 试试这个。 它可能会帮助您。

  • 问题内容: 我正在尝试获取目录及其子目录中所有文件的列表。我当前的递归方法如下: 但是,我希望有一种非递归的方式(可能是现有的API调用)来执行此操作。如果不是,这是最干净的方法吗? 问题答案: 您始终可以使用堆栈(对于DFS)或队列(对于BFS)将迭代解决方案替换为迭代解决方案: