【发布时间】:2015-10-09 19:43:17
【问题描述】:
在YAML中,我有一个类似下面的结构,用Java反序列化并解析:
events:
- causes:
- CAUSE_ONE
- CAUSE_TWO
effects:
- EFFECT_ONE
- EFFECT_TWO
- causes:
- CAUSE_THREE
effects:
- EFFECT_THREE
这转换为一个映射数组,其中每个映射包含两个键 - causes 和 effects,这些键的值是一个字符串数组。我试图实现的是单个对象具有一个或多个事件。每个事件都由一个或多个触发一个或多个结果的原因组成。在上面的例子中,当CAUSE_ONE和CAUSE_TWO条件都满足时,EFFECT_ONE和EFFECT_TWO被触发。当CAUSE_THREE条件满足时,触发EFFECT_THREE。
在 Java 中,这将是 Map<String, String>[] 或 List<Map<String, String>>。当causes条目中的所有条件都成功满足时,effects条目中的每个效果都会被启动。
我希望能够在 Java 中反序列化 YAML 数据,以便单个对象可以具有多个事件,当满足一系列条件(原因)时,会触发相应的效果。有没有更好的方式来构建上面的 YAML,或者我可以在不使用地图数组的情况下实现这一点?
【问题讨论】:
-
@Anthon 我修改了我的问题以提供更多关于我所问内容的详细信息。