关于YAML ↔ JSON 互转
YAML(YAML Ain't Markup Language)是一种以数据序列化为核心目标的标记语言,因可读性强、支持注释、可表达复杂嵌套结构,被广泛应用于配置文件,如 Docker Compose、Kubernetes、GitHub Actions、Ansible Playbook、各类 CI/CD 流水线等。JSON 虽然也是数据交换的事实标准,但不支持注释、必须使用双引号、不能有尾逗号,编写与阅读时不如 YAML 直观。
在现代开发流程中,开发者常需要在 YAML 与 JSON 之间互转:把 K8s manifest 从 YAML 转为 JSON 以便程序化处理、把 GitHub Actions 配置转换为 JSON 后用脚本生成与校验、调试 CI 报错时查看 YAML 实际解析后的数据结构等。手动编写转换脚本既繁琐又易错,借助在线工具可以一键完成。
本工具完全在浏览器本地完成 YAML 与 JSON 的双向转换,基于 js-yaml 库实现,支持多文档(--- 分隔)、注释、锚点、别名等 YAML 高级特性。所有数据不会上传到任何服务器,可放心处理包含密钥、Token 等敏感信息的配置文件。
核心特性
双向即时转换
在 YAML 与 JSON 之间一键切换,粘贴即转换,方便快速对比与验证。
多文档支持
支持 YAML 多文档(--- 分隔),自动合并为 JSON 数组输出,适配 K8s 多资源 manifest 场景。
注释与锚点兼容
基于 js-yaml 解析,正确处理 YAML 注释、锚点(&)、别名(*)等高级特性。
错误精准定位
YAML 或 JSON 解析失败时返回具体错误信息,包括行号与原因,帮助快速定位。
本地处理零上传
所有转换在浏览器内完成,敏感配置不离开您的设备,隐私安全有保障。
使用场景
调试 K8s 配置
把 Kubernetes 的 YAML manifest 转换为 JSON,便于使用 jq 命令或程序化处理,验证字段是否正确。
编写 CI 流水线
GitHub Actions、GitLab CI 等 YAML 配置出错时,转换为 JSON 后查看实际数据结构,定位缩进或字段问题。
生成配置文档
把 YAML 配置转换为 JSON 后嵌入到 API 文档或 SDK 中,便于其他语言直接读取。
学习 YAML 语法
通过对比同一份数据的 YAML 与 JSON 表示,理解 YAML 的缩进、列表、字典等概念。
常见问题
YAML 转 JSON 后注释会丢失吗?
会。JSON 标准不支持注释,YAML 中的注释在转换为 JSON 后会被丢弃。如需保留注释信息,请将注释内容以字符串字段形式存储在数据中。
为什么我的 YAML 转换失败?
常见原因包括:缩进不一致(YAML 不允许 Tab 缩进)、冒号后未加空格、列表项前未加空格、字符串未加引号导致特殊字符冲突。请查看错误提示中的行号定位问题。
支持多文档 YAML 吗?
支持。本工具会自动识别 YAML 文档分隔符(---),将多个 YAML 文档转换为 JSON 数组输出,每个元素对应一个 YAML 文档。
转换后的 JSON 与 YAML 数据完全等价吗?
数据内容等价,但部分 YAML 特有结构(如锚点、别名、多行字符串折叠方式)在 JSON 中可能以不同形式表达。YAML 的灵活性使得同一份数据可能有多种 YAML 写法,但 JSON 表示是唯一的。