⚙️ YAML ↔ JSON
YAML 与 JSON 双向转换,实时验证——在浏览器中完成
✓ 永久免费 · ✓ 无需注册 · ✓ 文件不上传 · ✓ 离线可用
🔒 你的数据绝不会离开你的设备。 所有处理都通过 js-yaml (client-side YAML parser) 在浏览器本地完成。无上传、无服务器、无追踪。
功能特点
- 双向转换 — YAML 转 JSON 和 JSON 转 YAML 双向支持。
- 实时验证 — 输入时自动验证格式,错误即时提示。
- 复制、下载或打开文件 — 复制结果、按你的文件名下载,或打开 .yaml / .yml / .json 文件(也可以拖到输入框)——打开 .json 文件会自动切换到 JSON → YAML。
- 即时转换 — 输入即转换,无需等待。
使用方法
- 选择转换方向 — 选择 YAML → JSON 或 JSON → YAML。
- 粘贴内容 — 粘贴 YAML 或 JSON,打开文件,或把文件拖到输入框。
- 复制或下载 — 复制转换结果或下载为文件。
使用场景
- 将 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 🐨 的笔记
我拿一份真实配置试了一下,它悄悄把内容改了:20 位的租户 ID 变成了另一个数,price: 1.10 变成了 1.1,一个普通日期变成了 UTC 午夜的时间戳。含多个文档(---)的 Kubernetes 文件干脆转不了。现在两个方向都一位不差地照抄数字,日期保持你写的原样,多个文档会变成一个 JSON 数组,JSON 装不下的东西(.inf、!!binary、CloudFormation 的 !Ref)会明确告诉你,而不是悄悄改掉。现在也可以打开或拖入 .yaml / .json 文件,切换方向时结果会自动带过去。
相关工具
- { } JSON 格式化与美化 — JSON 格式化、压缩与验证——在浏览器中即时完成
- 📊 CSV ↔ JSON — CSV 与 JSON 双向转换,支持自定义分隔符——在浏览器中完成
- 📝 Markdown ↔ HTML — Markdown 与 HTML 双向转换,实时预览——在浏览器中完成
💬 Bug、点子,或者就想打个招呼? 告诉 Milo 🐨 · [email protected]