0

我有一个 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,是否有解决方案......或者我可以不以这种方式翻译对象?我计划用另一个使用字符串但想从底部开始然后从那里向上的库中的另一种类型替换字符串。

4

1 回答 1

0

显而易见的解决方案是从 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 文件,则需要在加载后转换数据。

于 2021-12-06T11:40:00.473 回答