YAML 转 JSON
将 YAML 数据转换为 JSON。可在浏览器中即时把 Kubernetes 清单、docker-compose.yml、CI 配置文件等 YAML 结构,转换成 jq 等仅支持 JSON 的工具可以处理的格式。
使用小贴士
- 直接粘贴 Kubernetes 清单或 docker-compose.yml,即可将其结构可视化为 JSON,方便 jq 等仅支持 JSON 的命令行工具进行查询。
- 以零开头的邮政编码、电话号码等值如果不加引号,会被解析为数字并丢失开头的零,需要保留为字符串的值请务必加上引号。
- 本工具不支持使用锚点(`&`)、别名(`*`)或 `|`、`>` 块状标量等高级写法的复杂 YAML,请先改写为简单形式再粘贴。
- 取消勾选"格式化显示"即可得到不含换行的单行 JSON,适合粘贴到不希望包含换行符的 API 请求体中。
常见问题
当你想用 jq 等仅支持 JSON 的命令行工具查询或处理 Kubernetes 清单、CI 配置文件时,或者某个 API、脚本只接受 JSON 而无法直接读取 YAML 时,先转换成 JSON 会很方便。
不支持。本工具是仅覆盖常用写法(映射、序列、基本标量)的轻量解析器,因此用于值复用的锚点、别名,以及多文档流、`|`/`>` 块状标量等功能均不在支持范围内。
最常见的原因是缩进不一致,例如同一层级的项目空格数量不统一,或使用了制表符(Tab)而非空格进行缩进。此外,`key: value` 中冒号后面缺少空格也会导致解析失败。
本工具目前仅支持 YAML 转 JSON 这一方向。如果需要单独格式化或校验 JSON、YAML,请使用本站的其他格式化工具。
闲话 ― 为什么配置文件用 YAML 写,工具却要 JSON
YAML 因为可以写注释、引号也大多可以省略,可读性很高,因此被广泛用作 Kubernetes、docker-compose、GitHub Actions 工作流、Ansible playbook 等需要人工直接编辑的配置文件格式。相比之下,JSON 的规范简单明确,几乎没有歧义,程序处理起来更加机械化,因此成为了 API 数据交换以及 jq 等命令行工具的标准输入格式。
YAML 转 JSON 正是为了弥合"人写 YAML、工具要 JSON"这一差距而存在的。尤其是 Kubernetes 的清单文件常常长达数百行,仅靠 `grep` 查找特定值很快就会遇到瓶颈。先转换成 JSON 后再用 jq 查询,就能用类似 `.spec.containers[].image` 的路径瞬间取出所需的值。
不过完整的 YAML 规范(YAML 1.2)范围非常广,包含通过锚点、别名实现值复用、多文档流、用于多行字符串的块状标量等许多高级功能。本工具刻意不覆盖这些全部规范,而是聚焦于实际工作中最常出现的映射、序列与基本标量这一"常用子集",从而实现了无需外部依赖的简洁实现。