JSON 转 YAML 工具
将 JSON 转换为简洁易读的 YAML,适用于 Kubernetes、Docker Compose、GitHub Actions 和各类配置文件。可选择缩进、列表样式和键排序。
YAML 是 Kubernetes、Docker Compose、GitHub Actions、Ansible 以及许多 CI 工具使用的配置语言,而 API 和生成器通常输出 JSON。YAML 1.2 也接受 JSON 语法,但块风格的 YAML 往往更便于手工编辑。这个转换器把 JSON 改写成惯用的块风格 YAML——没有花括号,没有逗号,只在必要时才加引号——然后再把结果读回来,核对解析出的值是否一致。
使用方法
- 粘贴 JSON 对象或数组。
- 选择 2 个空格缩进(常见默认值)或 4 个空格。
- 选择列表的缩进方式,两种样式都是有效的 YAML。
- 可以按需对键排序,或给每个字符串强制加双引号,然后复制 YAML。
计算公式
对象 → key: value 行;数组 → "- item" 行;嵌套的值逐级缩进。字符串只有在不加引号会被读成别的类型时才加引号。
字符串看起来像数字、布尔值或 null("123"、"true"、"null"),是 "yes"、"no"、"on"、"off" 这类 YAML 1.1 布尔值,或含有 ": "、" #" 之类的字符时,需要加引号。多行字符串使用 | 块风格。长行不会被折叠,所以值始终保持在一行内。
示例
示例中的服务定义会变成 11 行 YAML,以 service: api、replicas: 3、debug: false 开头。env 的值保持为字符串:NODE_ENV: production 不加引号,PORT: '8080' 加引号,以免被读成数字。ports 变成 "- 80" 和 "- 443" 两行,owner 变成 null,含有 ": " 的 description 用单引号括起来。
常见问题
为什么有些值带引号,有些不带?
YAML 会根据不带引号的文本推测类型:8080 是数字,yes 可能是布尔值。当 JSON 中的字符串可能被误读时,就会加上引号,使它仍是字符串。如果你的团队习惯给所有字符串加引号,请勾选“双引号”选项。
输出的是 YAML 1.1 还是 1.2?
输出以 YAML 1.2 为目标,并会给 yes、on 这类旧式布尔值形态的字符串加引号。YAML 1.1 的其他隐式类型在不同读取器中可能表现不同;往返校验的结果以本工具的解析器为准。
键的顺序和注释会保留吗?
除非你选择排序,否则键的顺序会保留。JSON 没有注释,所以没有可带过去的注释;需要的话,之后在 YAML 里用 # 添加。
可以把 YAML 转回 JSON 吗?
可以,请使用 YAML 转 JSON 的转换器。这项校验比较的是 YAML 与解析后的 JSON,而不是原始写法。重复的键、非有限数、下溢和不安全的整数会被拒绝;其他小数遵循 JavaScript 精度。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/json-to-yaml-tool/
引用此工具
kakaoCalc. (2026, November 8). JSON 转 YAML 工具. https://kakao.mobile/zh/tools/json-to-yaml-tool/
“JSON 转 YAML 工具.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/json-to-yaml-tool/.