JSON转YAML转换器
把JSON改写成便于阅读、审查和添加注释的YAML。上传.json文件,即可得到缩进规范的.yaml文件,键、值和顺序保持不变,可直接放入代码仓库。
数据转换器
或将CSV, TSV, TXT … 文件拖放到此处 ·
单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除
文件在我们的服务器上处理,并在 30 分钟后删除。
CSV 和文本文件中分隔列的字符,读取和写入都适用。自动会从输入中检测,并以逗号写出。
UTF-8 适用于所有语言。如果 Windows 上的 Excel 打开 CSV 时重音字符或中日韩文字显示乱码,请选择带 BOM 的 UTF-8。
输入为 Excel、ODS 和 Numbers 时:只转换第一个工作表,或转换所有工作表(ZIP 中每个工作表一个 CSV,或 JSON 中每个工作表一个键)。
新电子表格中工作表标签的名称,最多 31 个字符。
对象数组会为每一行使用列名作为键;数组的数组更紧凑,并把表头作为第一个数组。
包裹所有行的外层元素名称;每一行会成为其中的一个 <row>。
用于 CREATE TABLE 和 INSERT 语句。只能使用字母、数字和下划线。
不同数据库的引号和列类型略有差异;请选择您要导入的数据库。
把日期单元格统一改写为一种格式。ISO (2026-10-18) 对数据库和代码最稳妥;保持原样则保留源文件中的显示方式。
使用方法
- 1
添加JSON文件
上传 API 响应、导出的设置或生成的清单,格式为 .json,最多 20 个文件,每个不超过 95 MB。每个文件必须包含一个有效的 JSON 值。
- 2
保持默认设置
转换为 中已默认选中 YAML。配置文件无需再改其他设置,输出使用两个空格缩进。
- 3
转换并提交
点击 转换为 YAML,下载 .yaml 文件,在后续维护者需要的地方添加注释,然后提交。
如何把 JSON 转换为 YAML?
上传 .json 文件,点击 转换为 YAML。对象会变成带缩进的 key: value 块,数组会变成带短横线的列表,而 YAML 可能误读的字符串会保留引号。
为什么配置文件要从JSON转为YAML
大多数 JSON 由软件生成:API 响应、设置导出、生成器的输出。大多数 YAML 则由人来维护。转换通常标志着数据不再是机器输出,而变成团队自己负责的内容,例如提交到 Git 的部署清单、CI 流水线或一组 Ansible 变量。
典型场景:你调用云 API,得到一份 200 行的资源 JSON 描述,想把它保存为基础设施代码。转换后得到的文件没有花括号和逗号,改动一行只产生一行差异,还可以用注释解释奇怪的值。测试数据和由非开发人员编辑的翻译文件也是如此。如果你需要的是用于电子表格或报告的扁平表格,JSON 转 CSV 更合适。
使用YAML配置文件的工具
| 机构 | 要求 | 来源 |
|---|---|---|
| GitHub Actions | 工作流位于 .github/workflows 中,为 .yml 或 .yaml 文件 | GitHub 文档 |
| GitLab CI/CD | 流水线定义在仓库根目录的 .gitlab-ci.yml 中 | GitLab 文档 |
| Docker Compose | 服务在 compose.yaml(原 docker-compose.yml)中描述 | Docker 文档 |
| Ansible | Playbook 和变量文件使用 YAML 编写 | Ansible 文档 |
| Kubernetes | 清单支持 JSON 或 YAML;文档和 Helm chart 使用 YAML | Kubernetes |
含特殊值的JSON转YAML示例
name: api version: "1.10" debug: false tags: - 网站 - 欧盟 country: "NO"
YAML 的优点
- 可用 # 添加注释
- 代码评审中的差异更短
- 大多数行没有花括号、逗号或引号
- 可用 | 块标量写多行文本
需要注意
- 缩进即含义,多一个空格就会改变结构
- 不允许用制表符缩进
- 不加引号的字符串可能被读成数字或布尔值
- 解析器比 JSON 更慢,也更不统一
这个示例说明了为什么仅仅替换花括号是不够的。版本号 1.10 在 JSON 中是字符串;在 YAML 中如果不加引号,会被读成数字 1.1。NO 是挪威的 ISO 代码,在 PyYAML 等 YAML 1.1 解析器中会被读成 false。两者都保留了引号,而真正的数字和布尔值则保持无引号。
JSON与YAML对比
JSON
JavaScript 对象表示法
JSON 是一种轻量级结构化数据文本格式,由 Douglas Crockford 在 21 世纪初推广,并被标准化为 RFC 8259 和 ECMA-404。它用简单易读的语法表示对象、数组、字符串、数字、布尔值和 null。它是网络 API、配置文件以及几乎所有编程语言之间数据交换的默认格式。它没有内置注释、日期或模式,嵌套很深的大文件没有查看器就很难阅读。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2001 · Douglas Crockford
YAML
YAML
YAML(“YAML Ain't Markup Language”)是 2001 年首次发布的易读数据格式。它用缩进代替括号,支持注释,并且是 JSON 的超集。Docker Compose、Kubernetes、GitHub Actions 和许多应用都广泛用它来做配置。它依赖空白字符,一个多余的空格就可能让文件出错,而且某些值(如“no”或日期)可能被意外解析。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
当生成的数据或 API 数据需要变成由人维护、在拉取请求中评审并可以用注释说明的配置文件时,人们就会把 JSON 转换为 YAML。
JSON转YAML转换器常见问题
JSON本身就是合法的YAML吗?
在 YAML 1.2 中是的:2009 年的修订版在设计时就让每一个 JSON 文档同时也是 YAML 文档。你可以把 JSON 直接粘贴到 .yaml 文件中,大多数工具都能识别。转换的意义在于可读性:没有花括号、引号和逗号的块状写法,正是评审者和后续维护者期望的样子。
为什么YAML中有些值被加上了引号?
因为不加引号的话,YAML 会把它们读成其他类型。像 1.10 这样的版本号会变成数字 1.1,而 yes 或 off 在旧版解析器中可能变成布尔值。看起来像数字、日期或布尔值的字符串需要加引号才能保持为字符串,所以认真的转换会保留这些引号。
转换后可以添加注释吗?
可以,这也是很多人转换的原因。在行尾或单独一行写 # 加上你的说明即可。JSON 无法解释某个值为什么这样设置,而 YAML 可以,这让评审和交接更轻松。
为什么YAML报制表符(Tab)错误?
YAML 规范禁止用制表符缩进,只有空格才算数。转换器输出的是空格,但如果编辑器设置为插入制表符,下次编辑时可能会破坏文件。请把编辑器设置为在 .yaml 文件中使用空格。
转换后的清单Kubernetes能识别吗?
kubectl 同时支持 JSON 和 YAML,所以两种写法的数据是一样的;YAML 版本只是大多数文档、Helm chart 和代码评审所采用的形式。如果之后需要把它变回 JSON 用于 jq 或 API 调用,可以用 YAML 转 JSON 反向转换。
- YAML转JSON转换器将 .yaml 和 .yml 文件转换为JSON,供只解析JSON的API、校验器和工具使用。默认格式化缩进输出,每批最多20个文件,30分钟后自动删除。
- JSON转XML转换器在线将JSON转换为XML:键名变为元素,数组变为重复元素,全部包在您命名的根标签内。输出带缩进格式,无需注册账号。
- JSON转CSV将JSON或JSON Lines转换为CSV:每个对象一行,嵌套字段展开为列,采用带BOM的UTF-8编码,Excel中重音字符显示正常。可同时处理20个文件。
- XML转JSON转换器将XML转换为易读的JSON:属性变为@键,重复标签变为数组,文本内容完整保留。适用于SOAP响应、订阅源和旧系统导出数据。
- JSON转Base64编码将JSON文件编码为单行Base64,用于Kubernetes Secret、CI变量、API请求体和令牌。逐字节可还原,可选data URI前缀。
- JSON转Excel转换器将JSON或JSON Lines转换为Excel XLSX表格:键变为列标题,每条记录变为一行。每批最多20个文件,无需注册账号。