YAML ↔ JSON 转换器与格式化工具
在 YAML 和 JSON 格式之间互转,或对 YAML 进行格式化与校验。自动识别输入格式,完全免费,在浏览器中运行。
使用方法
- 将您的 YAML 或 JSON 粘贴到输入区域——工具会自动识别格式
- 点击「转为 JSON」将内容转换为 JSON,或点击「转为 YAML」将内容转换为 YAML
- 使用「格式化 YAML」可在不转换的情况下美化 YAML 文档
- 使用「压缩」可生成紧凑的单行 JSON 输出
- 调整缩进选择器以控制输出的缩进量
- 点击复制以复制结果,或点击清除以重置
常见问题
-
什么是 YAML?
YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,常用于配置文件、CI/CD 流水线和 Kubernetes 清单。它使用缩进来表示数据结构,而非花括号。
-
什么时候应该使用 YAML 而不是 JSON?
对于配置文件和人工直接读写的文件,建议使用 YAML,因为它支持注释且更简洁。对于 API 响应和数据交换,建议使用 JSON,因为其支持更广泛且定义更严格。
-
YAML 能表示 JSON 中的所有内容吗?
可以。JSON 是 YAML 的子集——任何有效的 JSON 同时也是有效的 YAML。YAML 还额外支持注释、多行字符串、锚点和别名。
-
我的数据会被发送到服务器吗?
不会。所有转换均完全在您的浏览器中通过 js-yaml 库完成,您的数据不会离开您的设备。
-
如果输入内容无效会发生什么?
按钮下方将显示错误消息,准确描述解析失败的位置,帮助您快速定位并修复问题。
YAML 和 JSON 各自的定位
YAML 和 JSON 都是数据序列化格式,在技术选型时经常需要在二者之间做出选择。理解它们各自的优势,有助于在正确的场景用正确的格式。
YAML 的优势:可读性强、支持注释、支持多行字符串、语法更简洁(不需要引号和花括号)。适合由人工直接编写和维护的文件,如配置文件、部署脚本、基础设施即代码(IaC)。
JSON 的优势:语法严格(没有歧义)、解析器覆盖面极广、与 JavaScript 原生兼容、浏览器和 HTTP API 生态的默认选择。适合程序生成、机器消费、跨语言数据交换的场景。
何时需要互相转换?
几个典型的转换需求:
- 对接 API 与配置文件:API 返回 JSON,但需要将其存为 YAML 配置文件,便于日后人工维护
- Kubernetes 开发:在线教程和工具常用 JSON 格式展示集群资源,而实际工作中更习惯用 YAML
- 快速调试:YAML 的多行结构有时难以直接粘贴到只接受 JSON 的工具中,转换为紧凑 JSON 更方便
- 数据迁移:将应用配置从一种格式迁移到另一种格式时,自动转换比手工改写高效得多
转换时的注意事项
注释会丢失:YAML 支持注释,但 JSON 不支持。将 YAML 转换为 JSON 时,所有 # 注释都会被删除。如果注释包含重要说明,需要在转换前另行保存。
布尔值和 null:YAML 中的 true/false/null 会正确转换为 JSON 对应类型。但 YAML 1.1 中 yes/no 也被视为布尔值——转换时请注意这类隐式类型。
多行字符串:YAML 的块标量(| 或 >)在转换为 JSON 后会变成包含 \n 的普通字符串,可读性降低,这是格式差异不可避免的折损。
锚点与别名:YAML 的 &anchor/*alias 机制在转换前会被展开,转换后的 JSON 中会出现重复的内容块。