java - YAML 值未正确返回

标签 java configuration yaml

我有一个如下所示的 YAML 文件:

---
name:
  storage:
    documentfiles:
      username: rafa
      password: hello

我正在尝试获取最后两个用户名密码值。我当前的代码如下。我使用 Map 来存储 YAML 值,但由于当我 map.get() 任何过去 name 的内容时,有多个子项,因此它给了我一个 null 值。如果我这样做map.get(name)我得到{storage={documentfiles={username=rafa,password=hello}}}有谁知道我如何正确获取用户名和密码?

public Map grabYaml(){
    Yaml reader = new Yaml();

    InputStream inputStream = getClass().getClassLoader().getResourceAsStream(yamlFileName);
    Map map = (Map) reader.load(inputStream);

    return map;
}

最佳答案

类似这样的事情

public class Test {

    public Map grabYaml() throws IOException {
        Yaml reader = new Yaml();

        InputStream inputStream = new FileInputStream(new File(yamlFileName));
        Map map = (Map) reader.load(inputStream);

        return map;
    }

    public static void main(String[] args) throws IOException {
        Map storage = (Map) new Test().grabYaml().get("name");
        Map documentfiles = (Map)storage.get("storage");
        Map userData = (Map) documentfiles.get("documentfiles");

        System.out.println(userData.get("username"));
        System.out.println(userData.get("password"));
    }
}

关于java - YAML 值未正确返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30896480/

相关文章:

java - 在通知中使用 ConstraintLayout 时崩溃

javascript - 用java打开浏览器

java - 如何在 Java 中创建移动图形?

database - 从数据库模式创建 Web 表单

spring - 为什么我们应该在属性上使用 yml

ruby - 如何访问 Jekyll 中另一个页面中的 YAML 信息

java - 如何在保持线程安全的同时降低锁定粒度?

全局配置设置的C#线程安全

configuration - Logstash 指标事件率示例

github - 如何避免 Github Actions 中的代码重复; yaml 中有某种循环吗?