24 converter 单位 · 货币 · 文件

YAML 转 JSON YAML Ain't Markup Language ↔ JavaScript Object Notation 免费 在线 安全

放进一个 YAML 文件,带走 JSON。读和写都在这里、在你的浏览器里完成,文件不离开你的设备——这趟转换保住了什么、保不住什么,下面都写着,不用你自己去发现。

转换你的文件

把 YAML 文件拖到这里,或者选一个。

你的文件不会离开这台设备。一切都在你的浏览器里完成。

关于这个转换器
会保留什么 全部,因为两边装的是同样的形状:映射、列表、字符串、数字、真假值和 null 都无损过去。锚点和别名会展开,所以结果自己就站得住。
做不到什么 注释、空行、加不加引号,这些是一份 YAML 读起来什么样,不是它说了什么,一个都留不下——JSON 没地方放。不加引号写的日期会以文本到达,因为 JSON 没有日期这种东西。自定义标签不予认可:只读标准类型,这同时也让一个文件没法索要这一页没有的东西。
在哪里运行 在你的浏览器里。什么都不会上传,所以事后也没什么需要删除。

不上传任何文件

从 YAML 转换

转换为 YAML

这些格式从哪里来

CSV 最古老,也最缺乏规范:把一张表写成一行行文字,自1970年代起就在用,直到2005年才被形诸文字;那时每个程序早已各自认定了分隔符是什么、引号何时该加。XML 于1998年自 SGML 长出,供那些必须携带严格结构、并要照着模式检验的文档使用。JSON 是道格拉斯·克罗克福德约在2001年从 JavaScript 里抽出来的,刻意削减到只剩对象、数组、数字和字符串——正是这份简省让它拿下了整个网络。YAML 是它可读的表亲,缩进在那里做着别处由括号来做的事。彼此转换时只有一件事要紧:CSV 是平的,是行与列的网格;而 JSON、XML、YAML 都是树。

你会在哪里遇到它们

CSV 是电子表格导出的东西,也是会计、网店平台或银行对账单递到你手上的东西。JSON 是网络服务彼此交谈所用,配置文件也越来越用它来写。XML 存活在较旧的企业系统里、发票规范里,以及办公格式自身的内部。YAML 是人们用手写设置的地方。在它们之间转换,就是每天把数据从它诞生的地方搬到它被需要的地方。

常见问题

我的 CSV 在 Excel 里打开成了一列。为什么?

因为你的电子表格等的是另一种分隔符。Excel 依照计算机区域设置里的列表分隔符;凡是逗号已经充当小数点的地方,那个分隔符就是分号——也就是欧洲大陆的大部分地区。此时一个以逗号分隔的文件看上去就是一列文字。请用导入对话框并明确指定分隔符,而不要双击打开文件。3.5 有时变成一个日期,也出于同一个区域设置。

为什么我层层嵌套的 JSON 变不成一张整齐的表格?

因为表格是平的,而 JSON 是一棵树。一行每列只放得下一个值;一个 JSON 对象却能在某个字段里的列表里再套一个列表。转换意味着要选择如何把它拍平:要么把嵌套的名字接成一个很长的列标题,要么把父行按子项的个数重复若干次。两者都是让步,而且都无法自动还原——所以从表格回到原来的形状,通常需要一个人来做决定。

文件会损失质量吗?

要看两种格式各自装得下什么。在存放同样内容的格式之间转换——PNG 转 BMP,WAV 转 FLAC——不会损失任何东西。转成为省空间而丢弃信息的格式,比如 JPEG 或 MP3,每转一次就损失一点,再转回去也拿不回来。凡是有选择余地的地方,本页倾向于保住原来的质量,而不是做出最小的文件。

我的文件会被上传到什么地方吗?

不会。转换发生在你自己的机器上、你的浏览器里面;文件从不离开它,这里也没有任何服务器能够接收它。正因如此,限制一个大文件的是你自己的内存而不是上传;也正因如此,你转换的任何东西都不可能出现在任何人的日志里——包括我们的。不过,音频和视频工具会在你第一次使用时从本站取来它们的转换引擎——约三十兆字节,仅此一次;此后工作依然完全在你自己的机器上进行。

人们为什么把 YAML 转成 JSON

YAML 是人们必须手写数据时选择的记法。它用缩进代替大括号,允许注释,读起来几乎像一份提纲,这就是它成为配置首选的原因:构建流水线、容器定义、部署文件、静态站点设置、文档工具以及无数应用的配置。JSON 是程序更愿意接收的记法。它严格,没有注释,每种编程语言都能用标准库读取它。当一份为人而写的文件必须交给只接受 JSON 的程序、API 或工具时,就需要转换。这就是人们把 YAML 转成 JSON 的原因:他们的数据是便于书写的形式,而目的地想要便于解析的形式。

这些场景都很日常。开发者以 YAML 维护一份配置,却必须以 JSON 把它发给某个服务。一个团队想用检查 JSON 的工具来验证设置文件。作者有 YAML 的前置元数据,想把它喂给脚本。学生想看 YAML 文件的缩进如何映射到大括号。在每种情况下,数据是同一份,变的只是记法。

本页在您的浏览器中把 YAML 转成 JSON。您的文件在这里被读取和写出,所以它从不离开您的设备,这对配置文件很重要,因为它们常常含有地址、内部系统的名称,有时还有机密。而且本页会提前告诉您这次跨越保留什么、不能保留什么,而不是让您自己去发现。下面您会看到转换如何进行、注释丢失了什么,以及对日期和标签该预期什么。

转换如何进行

两种记法中相同的形状

您的 YAML 在浏览器内被读取,其结构被写成 JSON。两者持有相同的形状:映射、列表、字符串、数字、布尔值和 null 无损地过去。YAML 中的映射变成 JSON 中的对象,序列变成数组,标量值保持其类型。像 port: 8080 这样的一行得到数字,enabled: true 得到布尔值。

锚点和别名被展开

YAML 有一项 JSON 缺少的特性:您可以用锚点标记一个块,并在别处用别名引用它,以避免重复自己。锚点和别名被展开,所以结果可以独立成立。别名出现的每个地方现在都持有该块的完整副本。JSON 更长,但读取它不需要了解锚点。

缩进变成结构

在 YAML 中,结构由缩进表达。在 JSON 中,它由大括号和方括号表达。转换器按作者的本意读取缩进,并为您写出大括号。缩进中的错误,是最常见的 YAML 错误,会被报告而不是被猜测。

保留什么

一切属于数据的东西

一切都被保留,因为两者持有相同的形状:映射、列表、字符串、数字、布尔值和 null 无损地过去。如果它在您的 YAML 中是一个值,它在 JSON 中就是一个值。

键的顺序

键保持被书写的顺序,所以 JSON 的读法与 YAML 的顺序相同。

多行字符串

在 YAML 中跨越几行、用块样式书写的字符串,作为内部带换行的单个字符串被带过去,JSON 把换行写成转义序列。文本是相同的。

在您把 YAML 转成 JSON 之前应当知道的事

注释和版式没有了

注释、空行以及引号与不带引号之间的选择,是 YAML 文件的读法,而不是它的含义,它们都无法保留,因为 JSON 没有地方存放它们。如果您的 YAML 满是解释性的注释,JSON 里一条也不会有。请把 YAML 保留为人们阅读和编辑的文件,并把 JSON 当作派生的副本。

不带引号的日期以文本到达

不带引号书写的日期以文本到达,因为 JSON 没有日期。像 released: 2026-03-14 这样的一行得到字符串 2026-03-14。读取 JSON 的程序如果需要日期,必须把它解释为日期。

自定义标签不被遵循

自定义标签不被遵循:只读取标准类型,这也使文件无法索要本页没有的东西。YAML 允许标签告诉某个特定程序去构建某个特定对象。这样的指令在这里毫无意义,转换器不会遵循它们。

如何在这里把 YAML 转成 JSON

添加您的文件

把 YAML 文件拖到页面上,或从您的设备中选取。它在浏览器内被读取,不会上传。

转换

按下按钮。普通大小的文件只需片刻。请保持页面打开直到完成。

下载并检查

下载 JSON 并在文本编辑器中打开。看一看开头和结尾,检查结构和类型是您期望的。

仔细看看 YAML 和 JSON

同一份数据的两种记法

YAML 被设计成便于人书写和阅读。JSON 被设计成便于程序读取和写出。它们的重叠如此之大,以至于 JSON 几乎是 YAML 的子集,YAML 读取器通常能读取 JSON。反过来就不成立,因为 YAML 的功能更多。把 YAML 转成 JSON,就是从更丰富的记法走向更严格的记法,并放弃那些额外的东西:注释、锚点和标签。

为什么缩进错误很要紧

因为 YAML 依赖缩进,一行没对齐就改变了含义,有时还仍能解析。本应在块内的键跑到了块外。JSON 让这类错误变得可见,因为大括号准确地显示每个键落在哪里。因此转换也是检查文件是否表达了您所想的含义的便捷办法。

制表符

YAML 不允许用制表符缩进。如果您的文件含有它们,转换会报告问题。请把制表符换成空格再试。

详细看常见情形

服务和工具的配置

许多工具只接受 JSON 的配置,或根据 JSON 模式验证它。转换您的 YAML,并在需要 JSON 的地方使用结果。

检查文件到底说了什么

当 YAML 配置表现异常时,把它转成 JSON 能无歧义地显示结构。放错位置的键和错误的类型会凸显出来。

喂给脚本和 API

接受 JSON 请求体的 API 可以在转换之后获得 YAML 文件的内容。这让您可以把文件保持在您喜欢编辑的形式。

文档与内容文件

静态站点生成器和文档工具用 YAML 做前置元数据和数据文件。转换它们让其他工具能读取同样的数据。

把 YAML 转成 JSON 之前的实用建议

检查缩进

使用空格而不是制表符,并在每一层保持相同的宽度。大多数编辑器可以显示空白并高亮 YAML 错误。

给必须保持为文本的值加引号

像 yes、no 或 1.0 这样不带引号的值可能被读作布尔值或数字。如果您指的是文本,请给它加引号。这能保护版本号、编码和国家缩写。

把注释留在 YAML 里

因为注释无法保留,请把 YAML 连同它的解释保留为母版,需要时重新生成 JSON。

大文件

一切都在您的设备上运行,所以很大的文件需要内存。对于有许多兆字节的文件,请使用电脑,如果页面吃力就拆分数据。

转换之前人们常问的问题

我的注释去哪了?

没有了。JSON 没有地方存放注释,而它们是文件的读法,不是它的含义。

为什么我的日期是字符串?

因为 JSON 没有日期。不带引号书写的日期以文本到达。

锚点和别名会怎样?

它们被展开,所以结果可以独立成立。

为什么我的标签不起作用?

自定义标签不被遵循。只读取标准类型。

我的文件会被上传吗?

不会。转换在您的浏览器中运行,文件从不离开您的设备。

我可以变回 YAML 吗?

可以。JSON 转 YAML把数据以可读的形式写回,尽管没有原件所带的注释。

把 YAML 转成 JSON 时的明智选择

真的需要 JSON 吗?

如果接收工具读取 YAML,请保留 YAML。只有在需要 JSON 时才转换。

其他目标

如果目的地是标记文件,可以接着用JSON 转 XML。对于表格,JSON 转 CSV和JSON 转 XLSX服务于电子表格。

保留 YAML

YAML 是母版,带着它的注释和版式。请保留它,并把 JSON 当作副本。

转换之后得到好结果

在查看器中验证 JSON

在能理解 JSON 的编辑器中打开结果并折叠对象。如果结构看起来像您期望的,它就是健全的。

检查类型

看一看版本、编码和标志之类的值。确保它们在您指字符串的地方是字符串,在您指数字的地方是数字。

为传输而压缩

如果 JSON 将通过网络发送,有工具可以去掉空白让它变轻。数据保持不变。

准备好 YAML 以便顺利转换

保持朴素

当您把 YAML 转成 JSON 时,朴素的 YAML 转换得最好:映射、列表和简单的值。像自定义标签这样的特性会被忽略,锚点只会让文件更长。

明确类型

给任何看起来像另一种类型的东西加引号。明确比聪明更安全,JSON 将准确携带您所写的内容。

先用一小块测试

如果您的文件很大,请取一个部分放进测试文件并转换它。快速看一眼结果,就能显示结构是否是您期望的。

把 YAML 转成 JSON 时充分利用

把转换当作检查

本页最好的用途之一是当一面镜子。当您把 YAML 转成 JSON 时,大括号准确地显示缩进是如何被理解的。如果某个键处在错误的层级,或某个列表吞掉了不该吞的条目,在结果中一目了然。许多人转换一份配置,纯粹是为了确认它说的是他们想说的。

留意常见的类型意外

YAML 把某些不带引号的词读作其他类型。词 no 可能被读作 false,像 1.10 这样的版本可能被读作数字 1.1,而在某些读取器中,像 NO 这样的国家编码可能被读作布尔值。转换器遵循标准类型,所以看起来像数字或布尔值的值会被定为那些类型。如果您希望它们保持为文本,请在转换之前在 YAML 里给它们加引号。

长字符串与块样式

YAML 为长文本提供块样式,一种保留换行,一种把换行折叠成空格。两者都按格式作者的本意读取,得到的字符串写入 JSON 时换行是转义序列。文本是相同的,JSON 只是对人来说读起来没那么愉快,这正是 YAML 存在的理由。

一个文件中的多份文档

YAML 允许在单个文件中有多份文档,以三条短横线分隔。如果您的文件有几份,请想想您想要哪一份。把它们拆成单独的文件并分别转换,这样每个 JSON 文件只含一份文档。

配置中的机密

配置文件有时含有密码、令牌和密钥。因为转换在您的浏览器中进行,没有任何东西被发送到任何地方。即便如此,也不要把转换后的文件留在共享文件夹或电子邮件里,并在转交之前去掉机密。

让两种格式保持同步

如果一个项目需要同一份数据的 YAML 和 JSON 两个版本,请把其中一个当作来源,每次它改变时重新生成另一个。每当您把 YAML 转成 JSON,都要从当前的 YAML 出发,不要手工修补 JSON。这样两者就不会漂移开。

根据模式验证

许多工具根据模式检查 JSON,模式是对允许哪些键和类型的描述。YAML 配置不一定能被直接检查,但它的 JSON 形式可以。这是把 YAML 转成 JSON 的一个常见理由:在文件到达会拒绝它的系统之前先验证它。

隐私与处理

为什么本地转换对配置很重要

配置文件常常存放地址、内部系统的名称,有时还有密钥和密码。许多在线转换器会把您的文件上传到服务器,处理后送回结果,有一段时间一份副本存在于您无法控制的机器上。在这里,是您自己的浏览器在工作,所以文件留在您的设备上。

您离开时会发生什么

当您关闭页面时,转换后的文件会从浏览器中消失,所以请先下载它。关于您的文件,没有任何东西被保留。

如果出了问题

页面报告 YAML 错误

看一看它指出的那一行。常见原因是用制表符缩进、冒号后缺少空格,或引号没有闭合。

结构不是我期望的

检查缩进。差了一个空格的行,属于与您本意不同的块。

页面因很大的文件而卡住

一切都在您的设备上运行,大文件需要内存。请在电脑上重试,或拆分数据。

相关工具

同一系列的工具涵盖相邻的工作。要变回去,请用JSON 转 YAML。对于标记,XML 转 JSON和JSON 转 XML在这两者之间转换。对于表格,有JSON 转 CSV、CSV 转 JSON、JSON 转 XLSX和XLSX 转 JSON。

一个实际例子

假设您的团队把一个应用的设置保存在带注释的 YAML 文件里,重复的块用锚点,还有一个发布日期,而监控工具想要同样的设置,格式是 JSON。您把文件拖到这里并按下按钮。片刻之后您下载一个 JSON,其中锚点已展开,日期是字符串,注释没有了。您把它发给工具。YAML 带着它的注释留在您的仓库里,作为人们编辑的文件。

一份简短清单

转换之前

检查缩进。给必须保持为文本的值加引号。保留 YAML。

转换之时

留在页面上直到文件准备好。

转换之后

打开 JSON,检查结构和类型,并用将要读取它的工具测试它。

常见错误

指望注释能保留

它们不会。请把 YAML 留作解释之用。

让有歧义的值不带引号

像 yes、no 和 1.0 这样的值可能被读作另一种类型。请给它们加引号。

使用制表符

YAML 不允许用制表符缩进。请使用空格。

您的文件留在您的设备上

转换在本地进行。您的文件由您自己的浏览器读取,在那里重写并以 JSON 交还给您。没有任何东西被上传,所以服务器上不会留下副本,也没有别人能读到它。对于含有私密内容的配置,这是把 YAML 转成 JSON 的安全方式。

小结

要在这里把 YAML 转成 JSON,拖入文件并按下按钮。它在您的浏览器中被读取和写出,所以文件从不离开您的设备。一切都被保留,因为两者持有相同的形状:映射、列表、字符串、数字、布尔值和 null 无损地过去。锚点和别名被展开,所以结果可以独立成立。注释、空行以及引号与不带引号之间的选择,是 YAML 文件的读法,而不是它的含义,它们都无法保留,因为 JSON 没有地方存放它们。不带引号书写的日期以文本到达,因为 JSON 没有日期。自定义标签不被遵循:只读取标准类型。

长度与面积 质量与体积 温度 货币