技术演示 · YAML

YAML 地雷阵

你以为「可读性极佳」的配置格式,藏着一整片雷区。
8 道题,踩中几颗,玩完你就知道了。

每类陷阱至少一道 · 连对有加成 · 限时 20 秒
滚到底部还有「解析器对照台」,让浏览器和服务器现场打架

Norway 问题

country: no,是挪威还是 false?YAML 1.1 用 20 秒毁掉一个国家。

六十进制

duration: 12:30,你写的是半小时,它读出来是 750 秒。

Tab 之刑

缩进按一下 Tab,报错文案像天书,你找三天找不到错在哪。

解析器对照台

把任何一段 YAML 同时丢给浏览器(js-yaml 4,YAML 1.2)和服务器(SnakeYAML 2.x,YAML 1.1)。同一行字,两台机器可能读出完全不同的东西。

试试这些雷:
键 浏览器 js-yaml 4 服务器 SnakeYAML 2.x
解析中…

两边都报错,或读出来的值不一样,就是「解析器打架」。这不算 bug,这是 YAML 1.1 与 1.2 的三十年代差,你只是替它背了锅。