YAML ↔ JSON 转换器与格式化工具

在 YAML 和 JSON 格式之间互转,或对 YAML 进行格式化与校验。自动识别输入格式,完全免费,在浏览器中运行。

使用方法

  1. 将您的 YAML 或 JSON 粘贴到输入区域——工具会自动识别格式
  2. 点击「转为 JSON」将内容转换为 JSON,或点击「转为 YAML」将内容转换为 YAML
  3. 使用「格式化 YAML」可在不转换的情况下美化 YAML 文档
  4. 使用「压缩」可生成紧凑的单行 JSON 输出
  5. 调整缩进选择器以控制输出的缩进量
  6. 点击复制以复制结果,或点击清除以重置

常见问题

  • 什么是 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 中会出现重复的内容块。