NoKey
V2EX  ›  程序员

为什么我总觉得 yml 文件格式很奇葩

By NoKey at 2019 年 4 月 12 日 · 11195 次点击
从第一次见到 yml 文件到现在,我依然觉得这个文件格式很奇葩
一直无法接受和使用这种文件格式
58 条回复  •  2019-04-13 21:52:21 +08:00
love
   1
love  
   2019 年 4 月 12 日
我也是接受不了。
而且复杂的细节还挺多。
myyou
   2
myyou  
   2019 年 4 月 12 日   ❤️ 2
的确奇葩,个人感觉 toml 更好
NieKing
   3
NieKing  
   2019 年 4 月 12 日
Flutter 里面还有 yaml 呢
wc951
   4
wc951  
   2019 年 4 月 12 日 via Android
为啥,因为缩进?
wizardoz
   5
wizardoz  
   2019 年 4 月 12 日   ❤️ 1
yaml 和 json 是对等的呀,你就认为是在编辑 json 好了。不过比 json 友好。
wangxiaoaer
   6
wangxiaoaer  
   2019 年 4 月 12 日   ❤️ 1
@myyou #2 +1,toml 那屎一样的嵌套,毫无可读性而言,真不知道是怎么起来的。
ShareDuck
   7
ShareDuck  
   2019 年 4 月 12 日 via Android   ❤️ 1
不喜欢缩进要求严格的格式。
no1xsyzy
   8
no1xsyzy  
   2019 年 4 月 12 日   ❤️ 1
如果不太复杂反而自己按需拓展的 INI 会更好。
YAML 方便的就是这些解析器不需要自己拓展。
另外,我觉得一个大问题是结构太松散导致眼 parse 费力,尤其是 array 套 object 时。
bgm004
   9
bgm004  
   2019 年 4 月 12 日 via Android
因为缩进问题。。忙活半小时
mcfog
   10
mcfog  
   2019 年 4 月 12 日   ❤️ 1
@wizardoz
和 json 等价的部分只是 yaml 的一个子集,其实 yaml 是一个比 xml 还要复杂的格式
wolfie
   11
wolfie  
   2019 年 4 月 12 日
缩进 2 -> 4 就好了
runze
   12
runze  
   2019 年 4 月 12 日
yaml 过于复杂了,toml 相比之下简明很多。
NoKey
   13
NoKey  
OP
   2019 年 4 月 12 日
properties 文件不好么,为啥我看现在开始流行 yml
LuJason
   14
LuJason  
   2019 年 4 月 12 日   ❤️ 1
@ShareDuck python 开发者 退出了群聊
runze
   15
runze  
   2019 年 4 月 12 日
NULL, Null, null, nil, Nil, ~, 留空

在 yaml 里,以上哪些相当于 json 里的 null ?
yanaraika
   16
yanaraika  
   2019 年 4 月 12 日
格式简单,表达能力弱 <--------------------> 格式复杂,表达能力强

ad hoc 格式(例如 linux 中的 resolv.conf), json, toml, yaml, code as config
MilkShake
   17
MilkShake  
   2019 年 4 月 12 日
k8s 也用到了 yaml,的确很麻烦,缩进一些问题。如果找个好点的文本编辑器,还可以过得去。
wesnow
   18
wesnow  
   2019 年 4 月 12 日
对于很多开源 Java 项目都用 yaml 觉得很奇怪,明明 properties 比 yaml 更易读更易写,为什么不用 properties?
Phariel
   19
Phariel  
   2019 年 4 月 12 日 via iPhone
说起 yaml 我就想起了 Jade 一个远古的 template engine
http://jade-lang.com/

异曲同工之妙。。。
ansyx
   20
ansyx  
   2019 年 4 月 12 日 via Android
不能用 tab 逼死个人
hoyixi
   21
hoyixi  
   2019 年 4 月 12 日
你知道 stylus 吗?
trait
   22
trait  
   2019 年 4 月 12 日 via iPhone   ❤️ 1
@wangxiaoaer toml 简直完美 没觉得难读
whileFalse
   23
whileFalse  
   2019 年 4 月 12 日
@mcfog 对,所以其实不用那些 feature 就好了。
yaml 大部分用法还是代替 json 吧。
abmin521
   24
abmin521  
   2019 年 4 月 12 日 via Android
长配置 yaml 还是很爽的
推荐阅读 https://linux.cn/article-10423-1.html
@wesnow
shawndev
   25
shawndev  
   2019 年 4 月 12 日
看来因为 tab 吃亏的不止我一个……不过 json 也确实不太适合用于配置文件。目前看来微软使用的 ini 和苹果使用的 plist 还是比较好的选择
shawndev
   26
shawndev  
   2019 年 4 月 12 日   ❤️ 1
还是补充一句吧,plist 优于 json 在于可以注释,ini 优于 json 在于冗余信息少,而且直观
lincanbin
   27
lincanbin  
   2019 年 4 月 12 日 via Android
JSON 不支持注释,数组不支持,
lincanbin
   28
lincanbin  
   2019 年 4 月 12 日 via Android
数组不支持以,结尾
jsthon
   29
jsthon  
   2019 年 4 月 12 日 via iPhone
TAB 真的是害人不浅
auin
   30
auin  
   2019 年 4 月 12 日
properties
wangxiaoaer
   31
wangxiaoaer  
   2019 年 4 月 12 日
@wesnow #18 properties 默认不是 utf-8 编码,遇到中文就跪了
version
   32
version  
   2019 年 4 月 12 日
yml 兼容性好很多.
json 配置.比较坑.特别是数组的那些配置.
json 新标准很多人不知道.,不好统一和推广.或者识别..所以很多开源都推荐 yml 了.

pm2 用 yml 靠谱点.json 配置容易环境变量参数不生效
HangoX
   33
HangoX  
   2019 年 4 月 12 日
properties 主要问题是长吧?阅读起来比较困难,json 主要是不好编辑,所以就出现了 yaml,编辑起来的确方便
ojbkojbk
   34
ojbkojbk  
   2019 年 4 月 12 日
yml 可读性高这一条就可以秒杀 properties
icylogic
   35
icylogic  
   2019 年 4 月 12 日 via iPhone   ❤️ 1
作为一个,人类易读,易写,同时可以支持比较复杂的配置和数据格式

- yaml 用缩进真是太可怕了,我能接受 python 作为代码用缩进控制逻辑,但配置文件不应该这么搞。而且过于复杂。
- json 噪音太多,没有标准注释
- ini, conf 表达能力弱
- xml 噪音太多,其他问题倒不大,可以勉强接受
- 其他格式 太小众的个人项目 /没有一个大项目在用 /没有多语言比较成熟的 binding

我选择 toml ……
magicdawn
   36
magicdawn  
   2019 年 4 月 12 日
好用啊
btw prettier 也支持 yaml 了
https://prettier.io/docs/en/index.html
runze
   37
runze  
   2019 年 4 月 12 日
jhsea3do
   38
jhsea3do  
   2019 年 4 月 12 日
docker-compose / etcd 用 yaml 了很多年 已经习惯了
rockyou12
   39
rockyou12  
   2019 年 4 月 12 日   ❤️ 1
gradle 这种用代码来做 dsl 才配置文件的未来,可简单可复杂,又有无穷的表达能力
biossun
   40
biossun  
   2019 年 4 月 12 日
其实你需要的只是一个支持 yaml 语法检查的编辑器,甚至它可以自动帮你修复一些语法格式上的问题。
test0x01
   41
test0x01  
   2019 年 4 月 12 日 via Android
你只需要使用它的最基础的功能。是你自己把文件写那么复杂。人家只是复杂功能,不代表你一定要用啊。
Varobjs
   42
Varobjs  
   2019 年 4 月 12 日 via Android
个人觉得 yaml 比 json 好
hantsy
   43
hantsy  
   2019 年 4 月 12 日
Spring Boot 支持 YAML,除非简单几个属性的配置才用 properties,一般都是用 YAML 格式, 可读性好得多
impl
   44
impl  
   2019 年 4 月 12 日 via Android
Cargo.toml
undefined8
   45
undefined8  
   2019 年 4 月 12 日
更喜欢 yaml。。因为能注释
guyujiezi
   46
guyujiezi  
   2019 年 4 月 12 日
yaml 方便阅读
anguiao
   47
anguiao  
   2019 年 4 月 12 日
YAML 不管是手写还是阅读都还可以吧,起码比 JSON 好多了
reus
   48
reus  
   2019 年 4 月 12 日
toml 大法好
omph
   49
omph  
   2019 年 4 月 12 日
[JSON、XML、TOML、CSON、YAML 大比拼]( https://linux.cn/article-10664-1.html)
crist
   50
crist  
   2019 年 4 月 12 日
toml 大法好
zengguibo
   51
zengguibo  
   2019 年 4 月 13 日
反人类,没有工具根本编辑不了,多个空格都报语法错误
iyaozhen
   52
iyaozhen  
   2019 年 4 月 13 日 via Android
yaml 很好用呀,能注释,带基本数据结构
格式要求严格才好,统一。Python 党很喜欢。
Sparetire
   53
Sparetire  
   2019 年 4 月 13 日 via Android
yaml 在不超过 30 行的配置里用起来很愉快,不需要像 json 那样带引号,且支持注释,但是更长的话人眼游标卡尺也是很累的。。大概和作者是 python 出身有关?
toml 感觉挺好
sunocean
   54
sunocean  
   2019 年 4 月 13 日
只有我觉得,读起来很舒服吗? (尤其是读完 JSON 以后)
arthas2234
   55
arthas2234  
   2019 年 4 月 13 日
yaml 要配一个好一点的编辑器,不然很难受
lrh3321
   56
lrh3321  
   2019 年 4 月 13 日 via Android
习惯了以后觉得还凑合,至少比 xml 简洁多了。不过我还是更希望用 json
www5070504
   57
www5070504  
   2019 年 4 月 13 日
本 python 党特别不喜欢 yaml。。。
fooofei
   58
fooofei  
   2019 年 4 月 13 日 via iPhone
如果实现语言是 python 这样的解释型脚步语言,最好的配置文件应该是.py 文件这样同类型的,既能写注释,又能作为代码无缝使用。编译型语言就不适用这个规则了,才需要 toml 这样的配置文件。
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 120ms · 3.9.8.5