关于人类可编辑数据文件格式/解析库的建议
时间:2020-03-05 19:00:04 来源:igfitidea点击:
例如,现在我有一个自己的解决方案,该解决方案使用包含如下块的数据文件:
PlayerCharacter Fighter Hitpoints 25 Strength 10 StartPosition (0, 0, 0) Art Model BigBuffGuy Footprint LargeFootprint end InventoryItem Sword InventoryItem Shield InventoryItem HealthPotion end
- 人工可编辑(理想情况下,带有最少的垃圾字符)
- 对错误具有弹性(很少出现"哇,我现在无法解析任何有用的信息"样式错误,因此我丢失了文件其余部分中的所有数据)-当然,仍然能够识别并报告它们。在我的示例中,唯一完整的失败案例是缺少" end"。
- 嵌套结构样式数据
- 数组/列表样式数据
- 可定制的基础类型
- 快速地
是否有满足/超过这些要求的知名解决方案?
解决方案
回答
Yaml是一个很好的解决方案,非常接近我们所拥有的。搜索它。
回答
我赞同YAML的建议。它非常容易编辑,可以宽恕错误,并得到广泛支持(尤其是在动态语言中)。
回答
我说最常见的选择是:
- JSON(官方网站)-非常灵活,尽管标点符号可能会使人们习惯一些
- INI-超级简单易用,但数据类型有所限制
- XML-非常灵活,通用,但有时过于冗长
回答
我们可以尝试通过以下网址获取JSON:http://www.json.org/
它最初是为javascript和网络使用而设计的。但是它很干净,并且支持多种语言。
回答
Lua被设计为一种编程语言,在该语言中,语法也使我们可以轻松地将其用作标记语言,从而可以像对待代码一样包含数据文件。许多计算机游戏由于其速度和易用性而将其用于脚本编写,例如《魔兽世界》。但是,它最初是为能源行业设计和维护的,因此有很深厚的背景。
带有S表达式的Scheme也是一种非常不错的数据外观,但外观却不同的语法。最后,我们可以获得大多数入门级开发人员都了解的XML。我们还可以使用一个不错的开发套件(如ANTLR)来滚动自己定义良好且高效的解析器。
回答
我建议使用JSON。
- 与YAML一样可读/可编辑
- 如果碰巧用于Web,则可以将eval()放入JavaScript对象
- 可能像YAML这样的跨语言