YAML 转 JSON 工具

您可以粘贴 YAML,得到相同数据的 JSON,复制或下载为 data.json。YAML 中的错误会显示发现它的行和列。

免费 在浏览器中运行 核对于2026年11月10日星期二

YAML 1.2文本。允许用 --- 分隔多个文档。最多2,000,000个字符。

结果

有效性 — 有效的 YAML,或第一个错误的行和列。
JSON 文本

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 把 YAML 粘贴到 YAML 文本 中。
  2. 查看 有效性。如果它指出了行和列,请在该处修改 YAML。
  3. 如果 YAML 含有多个文档,JSON 文本 是一个数组,每个文档对应其中一项。
  4. 复制 JSON 文本,或下载为 data.json。

YAML 如何被读取

YAML 1.2由其规范定义,规范说明缩进、名称、列表、带引号的文本和块如何被读取。本工具使用遵循该规范的 yaml 库读取文本,然后把结果写成 JSON。

  • 映射会变成 JSON 对象,名称按书写的顺序排列。序列会变成数组。true、false 和 null 分别变为布尔值和 null,而带引号的文本仍为文本。
  • 整数保留每一位数字。同一映射中重复的名称会被报告为错误,因为 JSON 只会保留其中一个值。
  • .inf 或 .nan 这类值没有 JSON 形式,因此会被拒绝,而不会写成 null,也不会改变数值。

多个文档与别名

一个 YAML 文件可以含有多个文档,每个文档以一行 --- 开始。转换工具会读取所有文档。一个文档得到一个 JSON 值;多个文档得到一个 JSON 数组,每个文档一项,顺序与文件中的相同。别名(*name)会被它所指向的值替换。如果一个文件重复引用别名,使结果的体积膨胀,它会被拒绝。

计算示例:含两个文档的文件

YAML 1.2规范的示例2.7(Two Documents in a Stream)含有一个本垒打球员的列表,然后是一行 ---,再是一个球队的列表。转换后,结果是一个含两项的 JSON 数组,每个文档对应一个数组。

第一个数组含有三名球员,第二个数组含有两支球队,顺序与书写时相同。

文档 JSON 项
1 ["Mark McGwire", "Sammy Sosa", "Ken Griffey"]
2 ["Chicago Cubs", "St Louis Cardinals"]

常见问题

为什么错误会显示行和列?

位置是解析器发现问题的地方,从1开始计数。实际的错误可能稍早一些,例如它所指的那一行之前一行的缩进有误。

关于多个文档的提示是什么意思?

每个以 --- 开头的行都会开始一个新文档。于是 JSON 是一个数组,每个文档一项,按顺序排列。如果您本意是一个文档,请删除多余的 --- 行。

为什么 .inf 或 .nan 会给出错误?

JSON 没有无穷大,也没有非数字,因此这样的值无法在不改变内容的情况下写出。请把它改为数字或文本,然后重新转换 YAML。

转换时数字会被改动吗?

整数保留每一位数字,因此12345678901234567890会被原样写出。小数会写成最接近的 JavaScript 数字,所以1.50变为1.5,数值相同。

JSON 会保留名称的顺序吗?

会。名称按它们在 YAML 中书写的顺序出现。JavaScript 对象会把2024这样的名称移到最前面,本转换工具则不会。

我的 YAML 会被上传到任何地方吗?

不会。转换完全在您的浏览器中进行,您粘贴的内容不会发送到我们的服务器,也不会在那里保存。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。