UFOZoo

YAML转JSON — Docker与K8s配置转换

在线 YAML/JSON 双向转换器,一键切换,实时语法校验及错误行号。支持 Docker/K8s 配置。浏览器本地处理。

功能特性

  • 双向转换 —— 一键将 YAML 转换为 JSON 或将 JSON 转换为 YAML
  • 实时校验与精确定位 —— 语法无效时高亮显示错误行号并提示具体错误信息
  • 支持复杂嵌套结构,包括对象、数组和多级层次
  • 处理 YAML 锚点(&)、别名(*)、合并键(<<: *)和自定义标签
  • 保留数据类型 —— 数字保持数字、布尔值保持布尔值、空值保持空值
  • 默认显示行号,方便调试和对比差异时参考
  • 拖拽上传或点击浏览 —— 支持 .yaml 和 .yml 文件
  • 一键下载转换结果为 .json 或 .yml 文件
  • 纯浏览器本地处理,断网也能用,数据绝不上传
  • 完美适用于 Docker Compose、Kubernetes 清单、GitHub Actions 和 CI/CD 流水线

使用方法

  1. 1在左侧面板粘贴 YAML 或 JSON 数据。工具会自动检测格式并在输入时即时转换。
  2. 2校验失败时,输入面板的错误行号会变红 —— 鼠标悬停可查看错误消息。
  3. 3将 .yaml 或 .yml 文件拖拽到输入区域即可加载,无需服务器上传。
  4. 4点击右侧工具栏的复制或下载按钮保存转换结果。
  5. 5工具自动检测输入格式——粘贴 YAML 得到 JSON 输出,粘贴 JSON 得到 YAML 输出。
  6. 6使用上传按钮从设备文件选择器打开 .yaml、.yml 或 .json 文件。
  7. 7检查转换后的输出——YAML 锚点(&)和别名(*)在 JSON 输出中已被解析展开。
  8. 8根据需要将转换结果下载为 .json 或 .yml 文件。
  9. 9使用复制按钮获取输出并粘贴到 IDE、CI/CD 配置或 Kubernetes 清单中。

常见问题

什么是 YAML?

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,常用于配置文件、Kubernetes 清单、CI/CD 流水线和 API 规范。它设计为易于人类编写和阅读,同时能被机器轻松解析。与 JSON 不同,YAML 支持注释、多行字符串、锚点和别名,且大多数字符串不需要引号。

YAML 和 JSON 有什么区别?

YAML 更易读,语法简洁(不需要括号和逗号),支持注释(#)、锚点(&)、别名(*)和多行字符串。JSON 更严格,在 API 中广泛使用,解析速度更快,且所有编程语言都原生支持。两者可以表示相同的数据结构 —— 这个工具可以无缝地在它们之间转换。

如何将 JSON 转换为 YAML?

直接在左侧粘贴 JSON 内容,工具会自动识别格式并转换为 YAML。支持嵌套对象、数组、特殊字符等复杂结构。转换过程保留数据类型(字符串、数字、布尔值、null),输出整洁且缩进正确的 YAML,可直接用于 Docker Compose、Kubernetes 或任何配置文件。

这个工具支持 YAML 锚点和别名吗?

支持!工具使用 js-yaml 库,完整支持 YAML 1.2 特性,包括锚点(&)、别名(*)、合并键(<<: *)和自定义标签。这些引用会在转换为 JSON 前被解析,所以你会在输出中看到展开后的值。例如:&defaults 创建名为 'defaults' 的锚点,*defaults 在其他地方引用它。

我的数据会被上传到服务器吗?

不会。所有 YAML 和 JSON 处理完全在您的浏览器中使用 JavaScript 完成。您的数据不会离开您的设备 —— 我们没有服务器可以发送。您甚至可以在页面加载后断开互联网连接,它仍然可以正常工作。这使得它适合转换敏感的配置文件,如 Docker Compose 或 Kubernetes 清单。

支持哪个 YAML 版本?

工具支持 YAML 1.2(最新标准)。大多数现代 YAML 文件都使用 YAML 1.2,包括 Kubernetes 清单、GitHub Actions 工作流(.github/workflows/*.yml)、Docker Compose 文件(docker-compose.yml)、GitLab CI(.gitlab-ci.yml)、Ansible playbook 和 OpenAPI/Swagger 规范。如果您有非常旧的 YAML 1.0 文件,基本结构应该仍然有效。

可以转换大型 YAML 文件吗?

可以,没有严格的文件大小限制,但非常大的文件(10MB+)可能会降低浏览器速度。对于典型用例 —— Docker Compose 文件、Kubernetes 部署、CI/CD 配置 —— 它能即时处理。如果需要转换超大文件(100MB+),考虑使用命令行工具如 yq(YAML 的 jq)或 Python 的 PyYAML 库。

为什么我的 YAML 显示为无效?

常见问题:缩进不正确(YAML 使用空格而非 Tab,且缩进很重要)、键名后缺少冒号、未加引号的特殊字符(:、{}、[]、&、*、#)、尾随逗号(YAML 中不允许)、缩进级别不一致、混合使用空格和 Tab。校验器会显示失败的确切行和列 —— 查看行号中的红色高亮。提示:一致地使用 2 空格缩进。

可以在移动设备上使用吗?

可以,但桌面端体验更好。在移动设备上,输入/输出面板会垂直堆叠,您仍然可以复制/下载结果。为了获得最佳效果,在平板电脑上编辑大型 YAML 文件时请使用横向模式。

这个工具免费吗?

完全免费,无需注册,没有干扰使用的广告,没有速率限制。我们通过非侵入性展示广告赚钱,让您专注于完成工作。对于需要快速格式转换而不想安装工具的开发者来说非常完美。

相关工具