工具
ZH

JSON 转 YAML 在线转换工具

粘贴 JSON,即可获得简洁易读的 YAML,适用于配置文件、Kubernetes 清单或 CI 流水线;也可以切换转换方向,将 YAML 转为 JSON。

JSON

YAML

隐私保护:您的数据仅在浏览器中处理,绝不会被上传。

如何将 JSON 转换为 YAML

  1. 粘贴 JSON 或打开文件,YAML 会随输入实时显示。可选择 2 个或 4 个空格缩进。
  2. 如需反向转换,请将转换方向切换为 YAML → JSON,然后粘贴 YAML。
  3. 复制结果,或下载为 .yaml 或 .json 文件。

JSON 与 YAML 的区别

JSONYAML
结构花括号 {} 和方括号 []缩进和 - 列表项
字符串始终使用双引号仅在必要时加引号
注释不允许# comment
多行文本\n 转义使用 | 的字面量块
典型用途API 和数据交换配置文件

YAML 1.2 是 JSON 的超集,因此 JSON 文档本身就是有效的 YAML。转换器会改用可读性更强的块样式输出。

YAML 中必须加引号的值

有些不加引号的词在 YAML 中会改变类型:在 YAML 1.1 解析器中,yes、no、on 和 off 是布尔值,007 和 1e3 是数字,null 或 ~ 表示 null。这就是著名的“挪威问题”:国家代码 NO 如果不加引号,就会变成 false。转换器会自动为这类字符串加上引号,确保 YAML 读回后的数据完全一致。

YAML → JSON 支持的 YAML 语法

解析器能理解配置文件和 API 中常用的 YAML:块映射和列表,普通、单引号和双引号字符串,| 和 > 多行文本块,内联的 [ ] 和 { } 集合,注释以及 --- 文档分隔符。锚点(&)、别名(*)和自定义标签会被报告为不支持,并附带行号。对于包含多个文档的文件,只会转换第一个文档。

常见问题

YAML 是 JSON 的超集吗?

YAML 1.2 被设计为 JSON 的超集,因此几乎所有 JSON 文件也都是有效的 YAML。反之则不然:YAML 有注释、锚点和多行文本块,而 JSON 没有。

YAML 转 JSON 时会保留注释吗?

不会。JSON 不支持注释,因此注释会被丢弃。键、值及其顺序都会保留。

为什么我的 YAML 无法解析?

常见原因有:使用制表符缩进(YAML 只允许空格)、同一列表或映射中的各项没有从同一列开始,以及冒号后缺少空格。错误信息会指出具体的行号。

YAML 值在 JSON 中会被识别为什么类型?

遵循 YAML 1.2 核心 Schema:true/false 转为布尔值,null 和 ~ 转为 null,普通数字转为 JSON 数字,而 yes 这样的词仍保留为字符串。如需将 "007" 这类编码保留为文本,请在 YAML 中为其加上引号。