В YAML, у меня есть структуру, аналогичную приведенной ниже, который должен быть десериализации в Java и синтаксический анализ:YAML несколько ключей с несколькими значениями одного элемента
events:
- causes:
- CAUSE_ONE
- CAUSE_TWO
effects:
- EFFECT_ONE
- EFFECT_TWO
- causes:
- CAUSE_THREE
effects:
- EFFECT_THREE
Это переводит в массив карт, где каждая карта содержит два ключа - causes
и effects
, а значение этих ключей - это массив строк. Я пытаюсь добиться того, чтобы один объект имел одно или несколько событий. Каждое событие состоит из одной или нескольких причин, которые вызывают один или несколько эффектов. В приведенном выше примере, когда выполняются условия CAUSE_ONE
и CAUSE_TWO
, запускаютсяи EFFECT_TWO
. Когда выполняется условие CAUSE_THREE
, запускается EFFECT_THREE
.
В Java это будет либо Map<String, String>[]
, либо List<Map<String, String>>
. Когда все условия в записи causes
успешно выполнены, каждый эффект в записи effects
инициируется.
Я хочу, чтобы десериализовать данные YAML в Java, чтобы один объект мог иметь несколько событий, которые при выполнении ряда условий (причин) запускаются соответствующие эффекты. Есть ли лучший способ структурирования YAML выше или способ, которым я могу достичь этого, не используя массив карт?
@ Антон я изменил свой вопрос, чтобы предоставить более подробную информацию о том, что я прошу. – driima