YAML 解析器
解析 YAML 并转换为 JSON,支持双向转换和校验。所有处理在浏览器中完成。
如何使用 YAML 解析器
选择方向
选择 YAML 转 JSON 或 JSON 转 YAML。
输入内容
在输入框中粘贴 YAML 或 JSON 数据。
转换
点击转换按钮,查看结果并可复制。
什么是YAML?
YAML(YAML不是标记语言)是一种人类可读的数据序列化标准,可以与所有编程语言配合使用,常用于配置文件。
主要特性
人类可读
设计为人类可以轻松读写,开销最小
广泛使用
常用于Docker、Kubernetes、CI/CD等配置文件
数据类型
支持字符串、数字、布尔值、列表、映射和多行内容
常见问题
YAML 更注重可读性,支持注释和多行字符串;JSON 更简洁,解析更快。两者可以互相转换。
YAML 使用空格缩进表示层级关系,不能使用 Tab 键。同一层级的元素必须使用相同的缩进。
支持基本的数据类型、列表、映射、多行字符串和锚点/别名。不支持复杂的自定义标签。
YAML 1.2 被明确设计为 JSON 的严格超集——每个有效的 JSON 文档都是有效的 YAML,而 JSON 是 YAML 推荐的互操作子集。YAML 在此之上增加了注释、锚点、块标量和类型强制转换。这种关系使 YAML 到 JSON 的转换无损,而这正是本工具所执行的转换。
&anchor 为节点命名,*alias 复用该节点,<<: 则将一个映射合并到当前映射中。常见模式:定义 defaults: &d 并包含 retries 和 timeout,然后编写 prod: { <<: *d, retries: 10 },即可继承 timeout 同时覆盖 retries。这种去重机制源自 YAML 1.1,目前几乎所有工具仍然支持。
YAML 1.1 会把裸字符串 NO 强制转换为布尔值 false——no、on、off、yes、y 和 n 也一样。国家列表 [NO, SE, DK] 会静默地变成 [false, SE, DK]。YAML 1.2 收紧了这一规则(只有 true 和 false 才是布尔值),但许多解析器仍保留 1.1 的行为,因此解决办法是加引号:"NO"。本解析器会准确展示每个标量的解析结果。
YAML 在运维和 CI 配置领域占据主导地位:Kubernetes 清单、Docker Compose、GitHub Actions、GitLab CI、Ansible playbook 和 OpenAPI 文档都是 YAML。.yml 和 .yaml 扩展名可以互换使用,其中 .yaml 是规范中规定的标准写法。
使用 | 表示字面量块(literal block,换行符原样保留,非常适合代码),使用 > 表示折叠块(folded block,换行符变成空格,段落折叠)。两者默认都会剪除一个末尾换行符;剪裁指示符可以调整这一行为:|- 去除所有末尾换行符,+ 则全部保留。键下方的缩进决定了块的边界。
相关工具
权威参考资料
本工具所依据的一手资料 - 官方标准与规范,而非二手摘要。