【问题标题】:YamlBeans: Turning an object into a hashmapYamlBeans:将对象转换为哈希图
【发布时间】:2021-12-06 10:59:11
【问题描述】:

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

rules:
  - p_table: 
        ["p_event/Name", 
         "p_fault/Name"]
  - s_table: 
        ["s_event/Name", 
         "s_fault/Name"]
  - r_table: 
        ["r_event/Name", 
         "r_fault/Name"]

所以,我已经可以获取上面的 .yml 文件并使用 YamlBeans 解析它并使用如下代码打印出来:

System.out.println(map.get("rules"));

这给出了这样的结果:

[{p_table=[p_event/Name, p_fault/Name]}, 
{s_table=[s_event/Name, s_fault/Name]}, 
{r_table=[r_event/Name, r_fault/Name]}]

我想做的更多是在这种级别上,我可以将它存储在 HashMap 中并实际使用地图中的细节,如下所示:

HashMap<String, ArrayList<Strings>> Policies = (HashMap)(map.get("rules"));

但是当我这样做时,我要么抛出异常,要么只返回 null,如果我不使用 HashMaps,是否有解决方案......或者我可以不以这种方式翻译对象?我计划用另一个使用字符串但想从底部开始然后从那里向上的库中的另一种类型替换字符串。

【问题讨论】:

    标签: java yaml yamlbeans


    【解决方案1】:

    显而易见的解决方案是从 YAML 文件中删除序列:

    rules:
      p_table: 
        ["p_event/Name", 
         "p_fault/Name"]
      s_table: 
        ["s_event/Name", 
         "s_fault/Name"]
      r_table: 
        ["r_event/Name", 
         "r_fault/Name"]
    

    如果无法更改 YAML 文件,则需要在加载后转换数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多