YAML 转 JSON 转换器
在浏览器本地校验 YAML、统一缩进、排序键,并把 YAML 转换成 JSON。
YAML 校验与格式化
粘贴 YAML,点 Format YAML,工具会解析它并以统一的两空格缩进重新输出。解析失败时会报出解析器给的行号列号,并高亮相关那一行。想拿到解析结果的 JSON 表示,点 To JSON。
解析器使用 JSON 风格的 YAML schema,也就是说自动类型识别只会产出 JSON 兼容的基础类型 —— 字符串、数字、布尔、null,而不会构造语言特有的对象。YAML 终究比 JSON 表达力更强:缩进、块序列、注释、锚点和别名都能让源文件更精炼,但这些呈现层面的细节,在"解析再输出"这一趟里会丢掉一部分。
格式化和转换都在你的浏览器里运行。
常见的 YAML 错误
用了制表符而不是空格
YAML 禁止用制表符做缩进。把所有 tab 换成空格。
缩进不一致
子级的键相对父级,必须缩进相同的空格数。
特殊字符没加引号
:、-、#、{、[ 这些字符在特定位置有结构含义。当解析器可能把值里的标点当成 YAML 语法时,就给这个值加上引号。
冒号后面漏了空格
在块映射里,name:Ada 和 name: Ada 不是一回事 —— 那个空格才是键和值的分隔符。
类型被意外改变
值只要长得像数字或布尔,就可能被当成数字或布尔解析。邮政编码、带前导零的编号这类必须是字符串的标识符,请加引号。
格式化是一次有损的源码操作
格式化器保留的是解析出来的数据模型,而不是原封不动的源码。注释、原本的引号风格、空行排布、锚点名称和各种书写偏好,都可能丢失或改变。排序键是可选的,它能让配置文件更好扫读,但也可能制造巨大的 diff,或者打乱人为安排的顺序。
如果你要替换一份人工维护的配置文件,记得把原件留在版本控制里,并逐项检查输出。要是注释里承载着运维知识,就不能把这种"只保留数据"的转换当成安全的重写。
转出来的 JSON 仍然需要过一遍约定
这个解析器能把数据序列化成 JSON,也就是所谓的 YAML 转 JSON。但它证明不了这些字段和取值会被 Kubernetes、GitHub Actions、某个 CI 系统或任何其他应用接受。结果还要拿目标系统的 schema 或工具链再校验一次。
FAQ
为什么我的 YAML 解析失败?
常见原因是缩进 —— 尤其是制表符,或者同级项没对齐。但标点、引号和写坏的流式集合同样会失败。跳到报错那一行,再往上看一行有没有没闭合的括号或引号。
格式化会保留注释吗?
不会。工具解析的是数据,输出的是归一化后的文档,注释和原本的格式选择都不保证能留下来。
YAML 合法就代表我的配置系统能接受吗?
不代表。校验应用 schema 和检查 YAML 语法是两码事。过完这一关语法检查后,请再用目标平台自己的校验器验一遍。