为我的Android应用程序构建yaml文件的正确方法是什么?

时间:2015-09-07 20:39:06

标签: android yaml

我开始将配置文件放在我的Android应用程序中,我发现了一个适用于android的snakeyaml版本(如果有更好的解析器,我对任何事情都开放)。该库返回它读取的配置对象的哈希映射。我仍然是配置文件的新手,所以我将发布我现在的内容。这可以工作,但它提供了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

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

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

每个列表都取决于最后一个。我目前的做法似乎非常毛茸茸,可能存在问题。

1 个答案:

答案 0 :(得分:1)

这是有限的数据,因此很难进行概括,但对我来说,似乎shipoldclassic是头像的类型,因此您可以将其设为属性旁边的颜色:

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中的对象的层次分组来交换对象的属性。