YamlBeans: Превращение объекта в хэш-карту

#java #yaml #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]}]  

То, что я хотел бы сделать, — это больше на таком уровне, где я могу хранить его в хэш-карте и фактически использовать особенности карты, примерно так:

 HashMaplt;String, ArrayListlt;Stringsgt;gt; Policies = (HashMap)(map.get("rules"));  

Но когда я это делаю, у меня либо возникает исключение, либо оно просто возвращает значение null, есть ли решение для этого, если я не должен использовать хэш-карты… или я могу просто не переводить объекты таким образом? Я планирую заменить строку другим типом из другой библиотеки, которая использует строки, но хотела начать снизу, а затем подняться оттуда.

Ответ №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, вам необходимо преобразовать данные после его загрузки.