最近要写个程序的自动生成脚本,需要用到配置文件。初期考虑使用json,再使用json的过程中,我遇到了一下问题:
- json不支持注释
- 过多的层级嵌套
- 过于严苛的格式
json不支持注释
在定义一个配置文件时,如果不能使用注解,我们总会被繁杂的信息所冲击的头晕脑胀。所以一个好的注释是很重要的,虽然json可以通过 “//”:的方式间接实现注释的功能。但是它降低了配置文件的可读性。
过多的层级嵌套
json中的数据都需要使用 [] 或 {} 进行包裹,这样看起来的层级非常多,而且很不利于控制。当配置文件结构较为庞大复杂是,你会被手写json文件逼疯的。。
过于严苛的格式
json对于文本格式的要求过于严苛,手写时很可能少了 引号 逗号等符号导致问题。
综上考虑到配置文件的需求,觉得一个良好的配置文件格式最起码应该具有以下功能:
- 支持注释
- 良好的层级结构
- 格式要一定的松散,不能太严苛
- 书写方便
最终我选择了使用yaml格式作为文件的配置格式,yaml支持注释,不必强求逗号括号等符号,通过缩进来区分层级,视觉上清晰很多,yaml还可以作为json的超级,可以在其中使用json格式的内容, yaml的一个配置样式大概如下所示:
test:
name: test
code: 1
subs:
sub_name: subname
sub_code: 2
enum: {a: 1, b: 2}
欢迎关注我的微信公众号
璐豪笔记