跳到正文
WoowTools

JSON转YAML转换器

把JSON转换为适用于Kubernetes、Docker Compose、Ansible和CI流水线的干净YAML。支持缩进、引号、flow样式、多行字符串和文档分隔符。

免费 在浏览器中运行 无需注册

正在加载JSON转YAML转换器…

您的文件绝不离开您的设备

如何使用JSON转YAML转换器

  1. 1

    在此页面打开JSON转YAML转换器,它直接在浏览器中加载。

  2. 2

    添加文件、文本或数值,并调整设置。

  3. 3

    复制或下载结果。不会上传或存储任何内容。

关于此工具

YAML是配置文件的语言:Kubernetes清单、Docker Compose文件、GitHub Actions和GitLab CI流水线、Ansible剧本以及许多应用设置都在使用它。它承载与JSON相同的数据,但更便于人阅读和编辑。这款JSON转YAML转换器把JSON转换为干净、缩进正确的YAML,可直接粘贴到配置文件中。

如何把JSON转换为YAML

  1. 粘贴有效的JSON。
  2. 选择缩进(大多数工具的标准是2个空格)。
  3. 如有需要,调整引号、样式和字符串选项。
  4. 复制或下载YAML。

示例

{"services":{"web":{"image":"nginx:alpine","ports":["80:80"]}}}

会变成

services:
web:
image: nginx:alpine
ports:
- "80:80"

选项

  • 缩进和行宽。
  • 引号:自动(仅在YAML需要时添加)、始终或从不。
  • block或flow样式:嵌套多行,或从指定层级开始使用类似JSON的紧凑括号。
  • 多行字符串:保留换行的字面块(|),或折叠块(>)。
  • Null可写为null、~或留空,布尔值可写为true/false或其他格式。
  • 文档分隔符(---)用于包含多个文档的文件,Kubernetes中很常见。

转换器帮你避开的YAML陷阱

  • 看起来像其他类型的字符串:"yes"、"no"、"on"、"1.10"或"08"等值可能被某些YAML解析器识别为布尔值或数字。自动加引号可让它们保持为文本。
  • 特殊字符如:、#以及开头的*或&,会在需要时加上引号。
  • 制表符:YAML禁止用制表符缩进,输出只使用空格。

请先用JSON格式化工具校验JSON。需要反向转换?使用YAML转JSON。

常见问题

YAML和JSON一样吗?

它们描述的数据类型相同,YAML 1.2甚至可以直接读取JSON。YAML用缩进代替括号和引号,更容易阅读和编辑。

YAML应该用几个空格缩进?

最常用的是两个空格,也是Kubernetes和Docker Compose的默认值。切勿使用制表符。

为什么输出中有些值带引号?

yes、no、on或08这样的值可能被识别为布尔值或数字。自动加引号能让它们保持字符串,含义不变。

可以为Kubernetes转换JSON吗?

可以。粘贴JSON清单,保持2空格缩进;如果在一个文件中合并多个资源,请开启文档分隔符。

多行字符串如何处理?

可以写成用|表示的字面块以保留换行,或用>表示的折叠块把多行合并。

我的数据会被上传吗?

不会。转换在你的浏览器中完成。