用于 ASP/PHP 的跨平台平面文件数据存储


Cross-platform flat-file data storage for ASP/PHP

我正在用 ASP.Net/C#启动一个小项目,将来可能会移植到PHP和其他语言中。这个项目的设置在各个平台上都是相同的,但可以由用户修改,所以我想将它们存储在一个平面文件中,比如XML、JSON或YAML。

我宁愿避免使用外部库。我希望我的应用程序基本上是自包含在一个文件中的。

最普遍接受的平面文件格式是什么?例如,我知道 PHP5 可以在没有任何额外功能的情况下处理 JSON,但 ASP.NET 我需要安装 JSON.NET。

是否有任何文件可以创建通用的复杂数据结构,而无需外部库?

我为此调查了YAML,JSON,XML和SQLite*。

亚姆

  • 优点:可读性强。

  • 弊:需要 PHP 和 ASP.NET 中的外部库

.XML

  • 优点:应用广泛,原生支持 ASP.NET

  • 弊:需要PHP中的外部库,没有正确关闭标签很容易搞砸,比JSON和YAML占用更多空间,可读性不强

杰伦

  • 优点:占用空间小,原生支持 PHP

  • 缺点:ASP.NET 需要外部库

SQLite

  • 优点:数据库完整,支持SQL查询

  • 缺点:需要 ASP.NET 和PHP中的外部库,没有第三方应用程序就无法查看

答:

基本上,JSON是最接近我想要的。虽然它在 ASP.NET 中不受本机支持,但 JSON.NET 是一个出色的、文档齐全的插件,nuget 使它可以轻松安装在任何项目上。

我很想使用 YAML,因为它的可读性很强,但它需要两种语言的库,而且它们根本没有很好的文档。

* 简介是针对平面文件存储的。虽然SQLite不是一个平面文件,但它是一个存储数据的单个文件,所以它非常接近简介。