跳到主要内容

JSON 转 YAML:块标量、键排序、带位置错误提示

JSON 转干净 YAML:多行字符串走块标量、可选键排序、2/4 空格缩进、带位置错误提示,全程浏览器本地

  • 本地处理
  • 分类 格式转换
  • 适合 把粘贴内容或本地文件转成更适合交付的格式。
按字母排序对象键(利于 diff)
YAML 输出

这个工具能做什么

免费在线 JSON 转 YAML 工具,在浏览器里把任意合法 JSON 转成干净、好读的 YAML 1.2。嵌套对象和数组转成标准块式结构,多行字符串折叠成字面块标量 (`|-` 形式)而不是塞满 `\n` 转义的一长行;含有"冒号空格""开头 #""开头 -" 等 YAML 歧义字符的字符串会自动加引号,保证输出再解析回来完全一致。 布尔、null、数字保持真实类型:`true` 还是布尔,`"true"` 还是带引号的字符串。 缩进可选 2 或 4 空格,可选按字母排序对象键(对比两份配置时特别省事), 然后一键复制或下载可直接提交的 `.yaml` 文件。JSON 非法时给出带字符位置的 清晰错误,方便就地修。全程不上传:转换是本页运行的纯 JavaScript, API 响应、Kubernetes secret、CI 配置都不出标签页。

工具细节

输入
文本 + 数值 + 结构化内容
页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
输出
即时结果 + 复制 + 下载
结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
隐私
浏览器本地处理
主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
保存 / 分享
可分享链接状态
关键设置会进入 URL,复制链接后别人能复现同一组参数。
性能预算
首屏 JS ≤ 30 KB
没有声明 WASM 依赖,适合快速打开和移动端使用。
适用场景
格式转换 · 程序员
分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。

怎么用

  1. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

JSON 转 YAML 适合怎么用

适合把内容从一种实际格式转成另一种可用格式。

适合转换的任务

  • 把粘贴内容或本地文件转成更适合交付的格式。
  • 放进大流程前,先预览转换结果是否可靠。
  • 修正常见格式不匹配,不用打开完整编辑器。

转换检查项

  • 源格式比较乱时,先拿一小段试转。
  • 转换后检查编码、分隔符和换行符。
  • 结果确认前保留原始内容。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 YAML ⇄ JSON 互转 YAML 与 JSON 双向转换,美化输出、带行号错误提示,全程浏览器本地 打开
  2. 2 JSON 格式化与校验 浏览器内即时格式化、校验、压缩 JSON,数据不离开本地。 打开
  3. 3 JSON 压缩工具 将 JSON 压成单行,可选递归排序对象 key,全部在浏览器本地完成。 打开

真实使用场景

  • 把 curl 的 JSON 响应转成 Kubernetes manifest

    你用 `curl` 打了个 API,拿回一个 JSON 对象,现在要把它作为 ConfigMap 的 YAML 条目。步骤:从终端直接复制 JSON body,粘进 输入框,缩进保持 2(kubectl 的习惯),复制 YAML 输出,放到 manifest 的 `data:` 下面。带冒号的值(时间戳 `2026-05-29T10:30:00Z`、 比例 `cpu: 250m`)都会被正确加引号,`kubectl apply` 不会因为 map key 被错误解析而报错。

  • 把 package.json 的 scripts 迁到 GitHub Actions 的 YAML step

    你有一个 npm scripts 的 JSON 对象,想把每条变成 workflow 的一步。 粘 `"scripts"` 对象,缩进切到 2 对齐 `.github/workflows`,读 YAML。 多行命令(用 `&&` 串起来、跨行的脚本)会渲染成 `|-` 块标量, 正是 `run:` 步骤想要的形式,不用再手动转义一长行字符串里的引号。

  • 对比两份只是键顺序不同的 API 配置

    预发和生产返回"同一份"配置 JSON,但键顺序不一样,直接 diff 每行 都飘红。把两份分别粘进来,打开键排序,把两份 YAML 输出丢进对比 工具。这下高亮的只剩真正不同的值(生产的数据库 host、更高的副本 数),顺序噪音没了。

  • 从 JSON 片段写 docker-compose override

    同事在 Slack 把服务配置当 JSON 发给你。粘进来,缩进保持 2, 复制 YAML,粘到 `docker-compose.override.yml` 里对应服务名下面。 长得像布尔的环境值(`"true"`、`"false"`)会保持带引号的字符串, Compose 就不会把字符串开关悄悄强转成 YAML 布尔,把容器的环境 变量解析搞坏。

  • 把 JSON 的 i18n 词条转成 YAML 语言文件

    你的翻译工具导出 JSON,但你的框架(Rails、Symfony、很多静态站 生成器)要 `.yml` 语言文件。粘进扁平或嵌套的消息键 JSON,把结果 下载成 `en.yml` 提交。含单引号、开头横杠("- 见下文")或插值 占位符的字符串会自动加引号,一条奇怪的翻译就不会在加载时把整个 语言文件搞崩。

常见踩坑

  • 把 JavaScript 对象字面量当 JSON 粘进来。`{ name: 'x', port: 8080, }` 有不带引号的键、单引号、末尾逗号,都是非法 JSON。这是 JSON 转 YAML,不是 JS 转 YAML:先用 JSON.stringify(或用 JSON 格式化工具校验),再粘严格 JSON 进来。

  • 指望注释能保留。JSON 没有注释语法,所以没有东西能带进 YAML 输出。要带注释的 YAML,转换后手动补 `#` 注释行,工具不会替你编出来。

  • 以为 `yes`/`no`/`on`/`off` 会变成 YAML 布尔。在 YAML 1.2(本工具产出的版本)里它们保持普通字符串。如果下游某个 YAML 1.1 解析器仍把 `yes` 当布尔,在源 JSON 里把值写成 `"yes"`,两边意图都清楚。

  • 在目标工具要 2 空格的地方用了 4 空格缩进。Kubernetes、GitHub Actions、docker-compose 习惯都用 2 空格缩进;粘 4 空格 YAML 进去合法但评审时很显眼。复制前把缩进下拉框对齐目标。

隐私说明

JSON 转 YAML 的转换是本标签页里运行的纯 JavaScript(JSON.parse 加上 eemeli/yaml 的序列化)。JSON 不上传,不打点记录你转了什么,下载按钮 也是用内存里的 Blob 在本地生成 `.yaml` 文件。一个要留意的点:输入会 镜像进可分享的 URL(`?in=` 槽,上限约 1800 字符)。这对给同事发一个 "看这次确切转换"的链接很方便,但也意味着你输入的内容可能出现在浏览器 历史里,以及你粘贴 URL 那一端的访问日志里。如果配置里有真实密钥 (token、私钥、数据库密码),请直接复制 YAML 输出,别分享 URL,用完把 输入清掉。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-06-13