什么是正确的方式来结构我的yaml文件为我的Android应用程序



我开始把配置文件放在我的Android应用程序中,我发现了一个版本的snakeyaml适用于Android(如果有更好的解析器,我是开放的任何)。库返回它所读取的配置对象的哈希映射。我仍然是相当新的配置文件,所以我将只是张贴我现在有什么。这是有效的,但是它给出了一个4层深度的Hashmap。这似乎是完全错误的。

---
Games:
 Drag Race:
  Avatar:
   classic:
    color:
     - black
     - blue
     - green
     - red
     - yellow
   fastback:
    color:
     - black
     - blue
     - olive
     - red
     - white
   lux:
    color:
     - blue
     - gunmetal
     - orange
     - violet
     - white
   old:
    color:
     - black
     - blue
     - purple
     - red
     - white
 Race to Mars:
  avatar:
   ship:
    - red
    - blue
    - yellow

我的最终目标是存储以下内容:

  • 游戏类型列表
  • 每种游戏类型的角色列表
  • 每个角色的颜色列表

每个列表都依赖于最后一个列表。

这是有限的数据,所以很难进行概括,但对我来说,ship, oldclassic似乎是角色的类型,所以你可以在颜色旁边设置一个属性:

Games:
 Drag Race:
  Avatar:
    type: classic:
    color:
     - black
     - blue
     - green
     - red
     - yellow
    type: fastback
    color:
     - black
     - blue
     - olive
     - red
     - white
    type: lux
    color:
     - blue
     - gunmetal
     - orange
     - violet
     - white
    type: old
    color:
     - black
     - blue
     - purple
     - red
     - white
 Race to Mars:
  avatar:
    type ship:
    color:
     - red
     - blue
     - yellow

并失去一层深度。你也可以在每个角色上移动种族类型:

Games:
  - race: drag
    type: classic:
    color:
     - black
     - blue
     - green
     - red
     - yellow
  - race: drag
    type: fastback
    color:
     - black
     - blue
     - olive
     - red
     - white

,从而使游戏中的角色隐式(当然,只有当游戏中除了角色没有其他东西时,你才能这样做)。

以上是基于这样的一般原则:您可以在树结构和vv中使用对象的分层分组交换对象的属性。

最新更新