YAML 校验与 YAML ↔ JSON 转换
检查 YAML 是否有错误,并在 YAML 和 JSON 之间转换
正在加载工具…
找出 YAML 语法错误及其所在的行和列,并在 YAML 和 JSON 之间双向转换。可以用来查明 Docker Compose、Kubernetes 或 CI 配置等 YAML 文件为什么加载不了,或把 JSON 数据转成 YAML。
使用方法
- 把 YAML 粘贴到左侧的“YAML”框中,或点击“打开文件”。“JSON”框会立即更新,并显示“YAML 有效”或“YAML 错误”。
- 出现错误时,阅读原因和提示,然后点击“跳到该行”。如果缩进用了制表符,请点击“将制表符替换为空格”。
- 要把 JSON 转成 YAML,请把 JSON 粘贴到右侧的框中。“缩进”“按键名排序”和“多文档 ↔ JSON 数组”会改变结果。
- 用“保存 .yaml”或“保存 .json”下载结果。
计算方式与说明
- YAML 使用 js-yaml 库(MIT 许可证)解析,遵循 YAML 1.2 核心模式。对于旧版 YAML 1.1 解析器会有不同理解的值,会另外给出警告。
- “重新缩进 YAML”会重写 YAML,因此其中的注释会被删除。
- 所有转换都在这个浏览器中完成。你输入的任何内容都不会被保存或发送到任何地方。超过 30 MB 的文件无法打开。
常见问题
- YAML 可以用 Tab 缩进吗?
- 不可以。YAML 只允许用空格缩进。发现制表符时,会在显示错误的同时给出“将制表符替换为空格”按钮。
- 为什么 YAML 会把 no 或 yes 变成 true 或 false?
- YAML 1.1 解析器会把 yes、no、on 和 off 读作 true 或 false。在 YAML 1.2 中只有 true 和 false 是布尔值,但要让这个词保持为文本,最稳妥的做法是加上引号,例如 "no"。
- 为什么 0755 或 1.10 这样的值会变?
- 不加引号时它们会被读作数字,所以开头或末尾的零会消失。邮政编码、版本号和文件权限等必须保持原样的值,请加上引号。
- YAML 冒号后面一定要加空格吗?
- 是的。键和值写作 key: value,冒号后面要有一个空格。没有空格时,key:value 会被读作一个字符串。