如何使用snakeYaml库访问YAML文件中的内部(嵌套)键值

Alok:

我正在尝试使用Java中的snakeYaml库读取config.yaml文件。

我可以[{ABC=true}, {PQR=false}]在配置文件中获取模块名称(即)。有没有一种方法可以直接使用代码读取ABC的值(即true)。

我尝试过在线搜索,但它们并不是我要找的东西。下面提到的几个链接:

使用snakeyaml(导入junit库)将.yml文件加载到哈希图中

https://www.java-success.com/yaml-java-using-snakeyaml-library-tutorial/

config.yaml数据:

Browser: FIREFOX
Module Name:
- ABC: Yes
- PQR: No

下面是我正在使用的代码

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;
import java.util.Map;
import org.yaml.snakeyaml.Yaml;

public class YAMLDemo {

    public static void main(String[] args) throws FileNotFoundException {

        Yaml yaml = new Yaml();
        Reader yamlFile = new FileReader("./config.yaml");

        Map<String , Object> yamlMaps = yaml.load(yamlFile);

        System.out.println(yamlMaps.get("Browser"));
        System.out.println(yamlMaps.get("Module Name"));
    }
}

控制台输出:

FIREFOX
[{ABC=true}, {PQR=false}]

任何帮助都非常感谢。提前致谢。

Devstr:

如果使用调试器逐步执行代码,则可以看到它module_name反序列化为ArrayList<LinkedHashMap<String, Object>>在此处输入图片说明

您只需要将其转换为正确的类型即可:

public static void main(String[] args) throws FileNotFoundException {
    Yaml yaml = new Yaml();
    Reader yamlFile = new FileReader("./config.yaml");

    Map<String , Object> yamlMaps = (Map<String, Object>) yaml.load(yamlFile);

    System.out.println(yamlMaps.get("Browser"));
    final List<Map<String, Object>> module_name = (List<Map<String, Object>>) yamlMaps.get("Module Name");
    System.out.println(module_name);
    System.out.println(module_name.get(0).get("ABC"));
    System.out.println(module_name.get(1).get("PQR"));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用SnakeYaml写入YAML文件?

使用 snakeYaml 在 YAML 文件中添加/附加內部(嵌套)鍵值

如何使用变量访问嵌套python词典中的键值?

如何在Yaml文件中访问ONE HashMap的嵌套列表?

如何使用python访问json文件字典中的键值

在 yaml 中查找嵌套的键值对

如何通过Java(SnakeYaml)解析Yaml文件

如何在Golang中访问嵌套的Json键值

如何使用SnakeYAML转储嵌套列表

使用SnakeYaml将Java对象写入文件-使用Yaml.dump()时不会写出内部对象列表

如何读取YAML文件中的组件,以便可以使用ruamel.yaml编辑其键值?

如何使用OpenCV库访问xml文件中的子节点?

使用 SnakeYaml 从字符串生成 YAML 文件

如何在Jekyll YAML配置中访问多个嵌套变量

在python中读取YAML文件并通过匹配键值对来访问数据

如何使用linq从字典中获取嵌套键值对

如何使用SnakeYaml低级API(如getAsInt)解析YAML?

如何使用d3.js访问对象中的键值?

如何使用ng-repeat访问angular js中的键值?

如何访问共享库中的文件?

如何在YAML文件中嵌套对象和数组?

导入YAML文件时如何使用内部/外部编码?

将重复的键值对追加到YAML中的嵌套字典

如何使用Groovy访问Jenkins管道中json文件中的内部字段

如何使用jq更新Yaml键值对的值

如何使用ruby在YAML中的多级嵌套中替换值

使用php中的嵌套包含时如何访问所有文件

如何使用hd5f访问* .mat文件中的嵌套结构?

如何从AWS Lambda函数访问YAML文件中的变量?