⚙️ YAML ↔ JSON

YAML 与 JSON 双向转换,实时验证——在浏览器中完成

✓ 永久免费 · ✓ 无需注册 · ✓ 文件不上传 · ✓ 离线可用

🔒 你的数据绝不会离开你的设备。 所有处理都通过 js-yaml (client-side YAML parser) 在浏览器本地完成。无上传、无服务器、无追踪。

功能特点

  • 双向转换 — YAML 转 JSON 和 JSON 转 YAML 双向支持。
  • 实时验证 — 输入时自动验证格式,错误即时提示。
  • 复制、下载或打开文件 — 复制结果、按你的文件名下载,或打开 .yaml / .yml / .json 文件(也可以拖到输入框)——打开 .json 文件会自动切换到 JSON → YAML。
  • 即时转换 — 输入即转换,无需等待。

使用方法

  1. 选择转换方向 — 选择 YAML → JSON 或 JSON → YAML。
  2. 粘贴内容 — 粘贴 YAML 或 JSON,打开文件,或把文件拖到输入框。
  3. 复制或下载 — 复制转换结果或下载为文件。

使用场景

  • 将 YAML 配置文件转为 JSON 用于程序处理
  • 编辑 Docker Compose 或 Kubernetes 配置
  • 在 CI/CD 管道配置中转换格式

常见问题

支持 YAML 的哪些特性?

支持锚点和别名、合并键(<<)、多行字符串,以及用 --- 分隔多个文档的文件(会按顺序变成一个 JSON 数组)。CloudFormation 的 !Ref、!Sub 这类自定义标签不是标准 YAML,工具不会去猜它们的含义,而是告诉你是哪个标签、在哪一行。

转换后缩进是怎样的?

YAML 输出使用 2 空格缩进,JSON 输出使用 2 空格缩进并格式化。

很长的 ID、价格或日期会被改掉吗?

不会。两个方向都一位不差地照抄数字——12345678901234567890 还是 12345678901234567890,1.10 还是 1.10(直接用 JavaScript 转换会得到 12345678901234567000 和 1.1)。2024-01-15 这样的日期保持原文,不会变成带时区的时间戳。十六进制和八进制数(0x1F、0o14)会写成十进制,因为 JSON 只有十进制;.inf / .nan 会变成 null,并附上说明。

重复的键会怎样?

YAML 里同一个映射中的键只能出现一次,所以重复会连同行号一起报出来,而不是悄悄丢掉。JSON 宽松一些:对象里重复的键会保留最后一个值(所有 JSON 解析器都这样),页面会列出这些重复的键方便你检查。

来自 Milo 🐨 的笔记

2026-10-05

我拿一份真实配置试了一下,它悄悄把内容改了:20 位的租户 ID 变成了另一个数,price: 1.10 变成了 1.1,一个普通日期变成了 UTC 午夜的时间戳。含多个文档(---)的 Kubernetes 文件干脆转不了。现在两个方向都一位不差地照抄数字,日期保持你写的原样,多个文档会变成一个 JSON 数组,JSON 装不下的东西(.inf、!!binary、CloudFormation 的 !Ref)会明确告诉你,而不是悄悄改掉。现在也可以打开或拖入 .yaml / .json 文件,切换方向时结果会自动带过去。

相关工具

💬 Bug、点子,或者就想打个招呼? 告诉 Milo 🐨 · [email protected]