DevToolPal
简

YAML 与 JSON 互转

把 YAML 转成 JSON,或把 JSON 转成 YAML。支持锚点、多文档,出错时精确指出位置。

本地处理,不上传

选项

方向
缩进

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能简介

这个工具可以把 YAML 转成 JSON,也可以把 JSON 转成 YAML。YAML 易读易写,常用于配置文件,比如 Kubernetes、Docker Compose、GitHub Actions 和 OpenAPI 规范;而大多数程序、接口和浏览器使用的是 JSON。两者互转后,你可以校验配置、把配置交给脚本处理,或者把接口返回的数据变成易读的配置文件。

使用方法

  1. 把 YAML 粘贴到「输入」框,或把 .yaml、.yml 文件拖进去,也可以点「示例」。
  2. 输入的同时,右侧就会显示 JSON。缩进可以选 2 个或 4 个空格。
  3. 把「方向」切换到 JSON → YAML 即可反向转换。长字符串不会被折行,值始终保持在一行。
  4. 复制或下载结果。

如果 YAML 有错,错误提示会给出行号和列号,点击即可跳到出错位置。常见错误有:缩进不一致、用 Tab 缩进、冒号后面缺少空格、同一层级出现重复的键。

示例

name: devtools
ports:
  - 80
  - 443
database:
  host: db.internal

会变成

{
  "name": "devtools",
  "ports": [80, 443],
  "database": { "host": "db.internal" }
}

YAML 的几个注意点

YAML 会根据普通值猜测类型:3 是数字,true 是布尔值,null 和 ~ 表示空值,而 1.2.0 不是合法数字,所以仍是字符串。想让某个值保持为文本时(比如邮编 "01234"),请给它加上引号。锚点(&name)和别名(*name)可以复用一段内容,转换时会在 JSON 里展开成完整的副本。用 | 写的块字符串会保留换行,用 > 写的会把多行合并成一段。

常见问题

› 我的 YAML 会被发送到服务器吗?

不会。YAML 解析在你的浏览器里完成,Kubernetes 清单、CI 流水线和带密钥的配置文件都不会离开你的设备。

› 支持哪个版本的 YAML?

支持当前标准 YAML 1.2,包括锚点与别名、块和流式集合、多行字符串以及注释。

› 一个文件里有多个文档怎么办?

用 `---` 分隔的多个文档会被转换成一个 JSON 数组,每个文档对应一个元素。结尾 `---` 后面的空文档会被忽略。

› JSON 转 YAML 会保留注释吗?

JSON 本身没有注释,所以没有可保留的内容。YAML 转 JSON 时注释会被丢弃,因为 JSON 无法表示注释。