YAML转JSON转换器
把YAML配置、OpenAPI规范和CI文件转换成任何解析器、API或Schema校验器都能读取的JSON。上传 .yaml 或 .yml 文件,下载带缩进的JSON。
数据转换器
或将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
上传YAML文件
添加 .yaml 或 .yml 文件,一次最多 20 个,每个不超过 95 MB。文件名保持不变,生成的 JSON 文件沿用原名,只更换扩展名。
- 2
选择缩进或紧凑格式
格式化输出默认开启,会为 JSON 添加缩进,方便阅读和代码审查。如果需要单行文件以便粘贴到请求体中,可在高级设置中将其关闭。
- 3
转换并使用
点击转换为 JSON,下载后把文件交给 API、校验工具或需要它的脚本即可。
开发者为什么要把YAML转成JSON
YAML 是写给人看的:用缩进代替花括号,支持注释,大多数字符串无需引号。因此团队手工编辑的 Kubernetes 清单、GitHub Actions 工作流、Docker Compose 文件和 OpenAPI 规范都采用它。JSON 则是写给程序的。每种语言的标准库都有 JSON 解析器,浏览器原生支持解析,大多数 HTTP API 也只接受 JSON。
所以转换发生在两者的交界处。平台工程师要把清单交给只能读取 JSON 的 jq;后端开发者要把 OpenAPI 规范交给需要 JSON 的代码生成器;测试人员要把用 YAML 写的测试数据载入 JavaScript 测试套件。在这些场景中,YAML 始终是源文件,JSON 只是构建产物。如果要处理的是整个目录的数据源或导出文件,而不是配置,可以用 XML 转 JSON 以同样的方式处理较老的标记格式。
YAML与JSON的共同发展历程
- Clark Evans 首次提出 YAML
- 2001
- YAML 1.2 使 JSON 成为 YAML 的子集
- 2009
- RFC 8259,当前的 JSON 标准
- 2017
- YAML 1.2.2 修订版发布
- 2021
YAML特有的功能在JSON中如何处理
锚点(&defaults)及其别名(*defaults)让 YAML 可以复用一段内容。JSON 没有引用机制,所以每个别名都会被替换成该锚点内容的完整副本。
- 生成的 JSON 可能明显比 YAML 更长
- 合并键(
<<: *defaults)也以同样方式展开
以 # 开头的行是写给人看的说明。JSON 没有位置容纳它们,因此会被移除。
- 请把带注释的 YAML 源文件放在版本控制中保存
未加引号的 2026-10-18 在许多 YAML 解析器中会被视为时间戳。JSON 没有日期类型,因此会写成字符串 "2026-10-18"。
一个 YAML 流可以包含多个用 --- 分隔的文档,而一个 JSON 文件只能包含一个值。如果接收工具需要单个对象,请把每个文档放进各自的文件。
{
"service": "billing",
"replicas": 3,
"ports": [8080, 9090],
"env": {
"LOG_LEVEL": "info",
"REGION": "NO"
}
}YAML与JSON格式要点
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
JSON
JavaScript 对象表示法
JSON 是一种轻量级结构化数据文本格式,由 Douglas Crockford 在 21 世纪初推广,并被标准化为 RFC 8259 和 ECMA-404。它用简单易读的语法表示对象、数组、字符串、数字、布尔值和 null。它是网络 API、配置文件以及几乎所有编程语言之间数据交换的默认格式。它没有内置注释、日期或模式,嵌套很深的大文件没有查看器就很难阅读。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2001 · Douglas Crockford
当面向人编写的配置或规范需要交给机器处理时,人们就会把 YAML 转成 JSON,例如 API 请求、模式校验器,或没有 YAML 解析器的工具。
YAML转JSON转换器常见问题
YAML和JSON存储的数据相同,为什么还要YAML转JSON?
因为很多工具只能解析其中一种。所有编程语言和浏览器都自带 JSON 解析,而 YAML 需要额外的库。REST API 的请求体、JSON Schema 校验器、jq,以及 package.json、浏览器扩展的 manifest.json 等文件,都要求使用 JSON。
YAML里的注释会怎样处理?
注释会被丢弃。RFC 8259 没有为 JSON 定义注释语法,以 # 开头的行无处安放。建议把 YAML 文件作为带注释的源文件保存,把 JSON 当作随时可以重新生成的副本。
为什么NO或off变成了false?
遵循 YAML 1.1 的解析器会把 yes、no、on、off 当作布尔值,所以代表挪威的国家代码 NO 可能变成 false。YAML 1.2 只把 true 和 false 视为布尔值,但并非所有工具都遵循。请在 YAML 中给这类值加引号,例如 "NO",这样它在 JSON 中仍是字符串。
能转换YAML格式的CloudFormation模板吗?
AWS CloudFormation 同时支持两种格式,但 !Ref、!GetAtt 这类简写标签只存在于 YAML。JSON 模板要写成完整函数,如 {"Ref": "MyBucket"} 或 {"Fn::GetAtt": [...]}。转换前请先把简写标签改成完整写法,以保证 JSON 模板有效。
如何反过来把JSON转成YAML?
请使用 JSON 转 YAML。当 API 响应或生成的文件需要变成仓库里便于阅读的配置文件时,通常就是这个方向。