2

例如,现在我有一个自己动手的解决方案,它使用包含以下块的数据文件:

PlayerCharacter Fighter
  Hitpoints 25
  Strength 10
  StartPosition (0, 0, 0)
  Art
    Model BigBuffGuy
    Footprint LargeFootprint
  end
  InventoryItem Sword
  InventoryItem Shield
  InventoryItem HealthPotion
end
  • 人类可编辑(理想情况下,带有最少的垃圾字符)
  • 对错误有弹性(最少的“哇,我不能再解析任何有用的东西”样式错误,因此我丢失了文件其余部分中的所有数据)——但仍然能够识别和报告它们,当然。我的示例唯一完整的失败案例是缺少“结束”。
  • 嵌套结构样式数据
  • 数组/列表样式数据
  • 可定制的基础类型
  • 快速地

是否有任何众所周知的解决方案可以满足/超过这些要求?

4

6 回答 6

6

Yaml 是一个很好的解决方案,并且非常接近您所拥有的。搜索它。

于 2008-09-17T21:12:11.157 回答
1

赞同 YAML的建议。它非常容易编辑,非常容错并且得到广泛支持(尤其是在动态语言中)。

于 2008-09-17T21:14:26.877 回答
1

我想说最常见的选择是:

  1. JSON官方网站) - 非常灵活,虽然标点符号可能需要一些时间让人们习惯
  2. INI - 超级简单易用,但数据类型有点限制
  3. XML - 非常灵活、常见,但有时过于冗长
于 2008-09-17T21:15:38.993 回答
0

您可以在以下位置尝试 JSON:http: //www.json.org/

它最初是为 javascript 和 web 使用而设计的。但它非常干净,并且支持多种语言。

于 2008-09-17T21:16:25.250 回答
0

Lua被设计为一种编程语言,它的语法让您可以轻松地将其用作标记语言,因此您可以像包含代码一样包含数据文件。许多计算机游戏都使用它来编写脚本,例如魔兽世界,因为它的速度和易用性。然而,它最初是为能源行业设计和维护的,所以有一个严肃的背景。

带有 S 表达式的 Scheme 也是一种非常不错但外观不同的数据语法。最后,您获得了大多数入门级开发人员都知道的 XML。您还可以使用ANTLR等不错的开发套件推出自己定义明确且高效的解析器。

于 2008-09-17T21:18:19.987 回答
-1

我建议JSON

  • 与 YAML 一样可读/可编辑
  • 如果你碰巧用于 Web 则可以 eval()'ed 到 JavaScript 对象中
  • 可能和 YAML 一样跨语言
于 2008-09-17T21:21:07.373 回答