什么是YAML 转 JSON 转换器?

YAML 转 JSON 转换工具可将 YAML 文档即时转换为等效的 JSON 结构。它支持锚点、别名、多行字符串、嵌套映射和序列,方便将 Kubernetes 配置、CI/CD 流水线或其他 YAML 数据转换为 JSON 供 API 和代码使用。

工具基于 js-yaml,能识别 YAML 1.2 的进阶特性,包括锚点和别名(&ref / *ref)、多行块字符串(| 和 >)、显式类型标签,以及 yes/no/on/off 之类的布尔写法。还有反向模式可以把 JSON 转回 YAML,保留结构,并把全是标量的数组合并到一行上,读起来更舒服。

使用方法

  1. 第一步 — 粘贴 YAML 内容或上传 .yml/.yaml 文件。语法错误会标注行号,方便快速修正。
  2. 第二步 — 查看转换后的 JSON 输出,可配置缩进:2 个空格、4 个空格、制表符或紧凑格式。
  3. 第三步 — 复制 JSON 或下载为 .json 文件。使用反向模式可将 JSON 转回 YAML。

何时使用

  • 把 Kubernetes 清单或 Helm values 文件转成 JSON,给自家校验脚本用。
  • 把 GitHub Actions 或 GitLab CI 的配置喂给只接受 JSON 流水线的工具。
  • 调 docker-compose 的 schema 报错时,在 YAML 和 JSON 之间来回切换。

结果

您需要将 docker-compose.yml 转换为 JSON 以提交给部署 API。粘贴包含服务、卷和网络定义的 YAML,即可获得 API 可接受的有效 JSON,所有嵌套结构和数组都完整保留。

常见问题

支持 YAML 的锚点和别名(& 和 *)吗?
支持。js-yaml 在解析时就会把锚点展开,所以输出的 JSON 里是真实的数据,而不是引用语法。两个 key 在 YAML 里共享一个锚点,在 JSON 里会各自有一份完整副本。
为什么我的 YAML 布尔(yes / no)在某些工具里变成了字符串?
YAML 1.1 把 yes/no/on/off 当布尔,YAML 1.2 只认 true/false。本工具按 1.2 处理,所以 yes/no 默认就是字符串,除非你显式写成 true/false。「挪威 bug」之类的坑通常在这里就没了。
可以把 JSON 转回 YAML 吗?
可以。打开反向开关,输入就变成 JSON,输出 YAML。导出时会保留嵌套对象和数组,带换行的长键会输出成块字符串(|),保持可读性。
日期和时间戳怎么处理?
YAML 的日期和时间戳字面量会变成 ISO 8601 字符串(JSON 没有原生日期类型)。通过反向模式来回转换会保持为字符串,而不是恢复成 YAML 的隐式日期类型,这样更安全。
缩进选项怎么选?
2 个空格是 JavaScript 和大多数 API 的事实标准。4 个空格符合 Python PEP 8,适合把结果嵌进 .py 文件。紧凑(0)输出单行,适合 HTTP 请求体或直接粘到 curl 命令里。Tab 用真正的制表符缩进 JSON,方便 Go 或 Makefile;YAML 不能用制表符,所以反向模式会改用 2 个空格。

相关工具