首页 > 其他分享 >关于软件常用的各种配置文件YAML、JSON、ini、XML比较

关于软件常用的各种配置文件YAML、JSON、ini、XML比较

时间:2022-11-16 15:03:58浏览次数:82  
标签:XML 配置文件 可读性 关于软件 json 文件格式 ini 解析


如果我们的程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件主要就是用来存储 键 - 值 对的,就是类似一个map作用。所以自己设计一种简单的配置文件格式,也未尝不可,只是因为已经有大量的成熟配置文件格式可用,就用已有的吧。

配置文件有很多,如INI配置文件,XML配置文件,YAML,JSON,还有就是可以使用系统注册表等。关于这些配置文件各有优缺点,主要就是两方面:

表达能力

就是这种配置文件能够表达的数据格式的丰富性,比如一个复杂的数据结构,能否表达出来。

xml > yaml > toml > json > plist > ini

人类可读性

就是这种配置文件,直接用记事本等纯文本编辑器打开时,能否容易看懂其表达的内容。

ini > toml > yaml > json > xml > plist

总结

一般简单场合,其实ini配置文件就够用了(比较经典,用的人多,windows系统最常见),支持最基本的 键 - 值 对的使用,而且可读性太好了。还支持注释。解析速度也快。有开源库可用(因为文件格式真的很简单,自己写几个简单的解析函数也很快)。当然文件后缀名也不一定是ini啦,是其它的也行,因为解析函数能解析其内容就行了。

​simpleini/README.md at master · brofield/simpleini · GitHub​


当然,对数据结构复杂一些的,用json也够了(用的人多,比如vscode的配置文件就是这个),各种编程语言都有成熟的开源库。这个算是表达能力和可读性的一种权衡的配置文件吧,但是,它不支持注释

如果要求更高,就选表达能力更强的配置文件吧,但是可读性会差,解析速度也会差了。

所以,我一般用ini和json的比较多。

参考文章:

​YAML,JSON,ini,XML 用来做配置文件,优缺点分别是什么? - 知乎​


标签:XML,配置文件,可读性,关于软件,json,文件格式,ini,解析
From: https://blog.51cto.com/u_13682052/5856418

相关文章

  • XML指南——XML 命名空间
    XML命名空间提供了一种避免元素命名冲突的方法。命名冲突因为XML文档中使用的元素不是固定的,那么两个不同的XML文档使用同一个名字来描述不同类型的元素的情况就可能发生。......
  • XMLDOM对象方法:对象事件
    Ondataavailable事件作  用 此事件会在XML文件有效时被触发。基本语法  此一事件有下面三种处理方式. Inline:<element ondataavailable = handler>;. Event pro......
  • centos52 的smb.conf 共享文件配置 samba 的配置文件,较老版本
     新建用户x,组为root,用pdbedit-a xxxx命令添加到samba服务中在配置完毕后,可以用testparm/etc/samba/smb.conf来检查是否正确  #ThisisthemainSambaconf......
  • XML指南——XML编码
    XML文档可以包含外文字符比如挪威语或者法语(中文当然也可以!这一部分还是不能照原文翻译,下面有些内容是我自己写的)为了让你的解析器能够明白这些字符,你必须在XML文档中统一的......
  • XML指南——XML CDATA
    在XML文档中的所有文本都会被解析器解析。只有在CDATA部件之内的文本会被解析器忽略。解析数据XML解析器通常情况下会处理XML文档中的所有文本。当XML元素被解析的时候,XML......
  • 关于SpringBoot项目中Jar包使用外部配置文件的问题
     SpringBoot项目的jar包在有外部配置文件的情况下会优先调用外部配置文件外部配置文件的优先级依次是执行命令的目录下的config目录(jar包同一目录下的config目录)jar包......
  • log4j2.xml 使用 application.yml 配置的属性
    转自:https://blog.csdn.net/xiaokanfuchen86/article/details/126695797 log4j2.xml 是不归spring管理的,所以也就没法读取到application.yml里面的配置了。解决方......
  • mybatis XML 使用 case when 代替多个if
    不建议使用<selectid="findActiveBlogLike"resultType="Blog">SELECT*FROMBLOGWHEREstate=‘ACTIVE’<iftest="title!=null">AND......
  • MongoDB配置文件详解
    一配置文件说明MongoDB有两种配置文件格式,分别是:3.2版官方yaml配置文件选项参考用=号的常规格式类似my.conf等常规配置的文件yaml语法的新格式mongodb3.x版本后就......
  • pom.xml图标变成蜘蛛怎么办
    IDEA的pom.xml文件上面有蜘蛛标志,这种情况是由于不小心点击AddasAntBuildFile,然后pom.xml就成蜘蛛标志了,点开Ant,一般右侧会有Ant,若没有就点上方工具栏的Views—>Tool......