YamlBeans: превращение объекта в хэш-карту
У меня есть файл 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 ... или я могу просто не переводить объекты таким образом? Я планирую заменить String другим типом из другой библиотеки, которая использует Strings, но хотела бы начать снизу, а затем подняться оттуда.
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, вам необходимо преобразовать данные после его загрузки.