李成笔记网

专注域名、站长SEO知识分享与实战技巧

INI、JSON、XML、YAML、TOML、HOCON用来做配置文件优缺点

#首发创作赛#

随着计算机技术的发展,各种应用场景的不同,出现了许多格式的文件,如:INI、JSON、XML、YAML、TOML、HOCON。这些格式的文件都可以用来作为配置文件来使用,那么,INI、JSON、XML、YAML、TOML、HOCON用来做配置文件的有哪些优缺点?下面做一下比较。纯属个人意见,仅做参考。

INI格式

ini 即 Initialize ,是Windows中常用的配置文件格式,结构比较简单。ini文件以节(section)和键(key)构成,常用于Windows操作系统中。这种配置文件的文件扩展名多为ini。由于ini文件是纯文本格式,所以可以用任何纯文本编辑器来进行编辑其内容。

Windows常用的配置文件,古老的东西,优点是简单,缺点也是因为简单。

JSON格式

JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于将数据从一个应用程序传输到另一个应用程序。已成为跨编程语言和平台的通用数据格式。JSON格式的数据在许多场景中都得到广泛应用,如应用程序配置文件,特别是在Web开发中,它常用于API的数据传输和存储、配置文件的格式化以及与前端应用程序之间的数据交换。易于阅读和编写,同时易于机器解析和生成。

网络传输下的产品,非常好用。如果做配置文件的话,易写也易读。缺点嘛,不能写注释。这个缺点属于强行安的。要写注释,多加个字段来注明也非常方便。

XML格式

XML,全称为ExtentsibleMarkup Language,即可扩展标记语言,是用来定义其它语言的一种元语言,使用自定义的标签对文档内容进行描述。被设计用来传输和存储数据。它极其简单易于掌握和使用。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言。XML文档的语法要求非常严格,要求每一个标记都必须匹配一个结束符,每一个标记的出现次数也有严格的要求。

某段时期的特定产物,优点是某段时期很通用,缺点就是很难阅读,一不小心写错。

yaml格式

yaml全称Yet Another Markup Language(另一种标记语言),它是一种简洁的非标记语言,以数据为中心,使用空白,缩进,分行组织数据,解析成本很低,是非常流行的配置文件语言。

优点是能写注释,Spring boot框架默认配置格式,不用你额外写什么代码就能帮你搞定了解释。缺点嘛,缩进严格且敏感,不适合写复杂点的配置文件,配置文件也不能写对象化的配置。

TOML格式

toml(Tom's Obvious, Minimal Language)是一种简洁且易于阅读的配置文件格式,它的设计受到了INI文件、YAML和JSON等格式的影响。TOML 的目标是成为一个语义明显且易于阅读的最小化配置文件格式。TOML也很容易地被解析成各种语言中的数据结构。

优点是吸收了INI和JSON的优点,风格上像是 ini 的扩展。易写也易读,重点在“小”上,支持的数据类型也很丰富。缺点嘛,似乎没有。

HOCON格式

HOCON 是为 Play 框架设计的配置格式,在 Scala 项目中非常流行。它是 JSON 的超集,也就是说JSON格式是它的子集。除了注释、可选逗号和多行字符串这些标准特性外,HOCON 还支持从其他文件导入和引用其他值的键,避免重复代码。

优点是继承了JSON的优点,能够包含文件,继承,引入变量和引用的概念。缺点嘛,包含文件继承等特性又导致不易阅读。

各格式对应python模块

#toml格式
import toml  
#xml格式
import xml.etree.ElementTree as ET
#json格式
import   json
#ini格式
import configparser
#yaml格式
import yaml
#hocon格式
import hocon

如何使用python读取这些格式的配置文件?请参考我以前写的头条文章。

总结

个人认为,作为配置文件,toml格式非常实用,可以解决大部分需求问题,个人非常喜欢。到底谁优谁劣,每个人站在自己的角度都有自己的答案。其实它们之间各有优劣,可以根据自己实际的需求和团队协作要求来具体选择。

编写难易:ini > toml > yaml > json > xml > hocon
存储数据复杂度:xml > yaml > toml ~ json~hocon > ini

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言