JSON 转 YAML 工具

粘贴 JSON,即可得到数据相同的 YAML,可复制,也可下载为 data.yaml。每个名称在其对象中保持原位,每个整数都保留全部数位。

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

任何有效的 JSON:一个对象、一个数组或单个值。最多2,000,000个字符。

缩进方式

每一层嵌套使用的空格数。

结果

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

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

使用方法

  1. 把 JSON 粘贴到“JSON 文本”中。
  2. 选择需要的“缩进方式”。YAML 文件通常用两个空格。
  3. 阅读“有效性”。如果它指出了行和列,请先在那里修改 JSON。
  4. 复制“YAML 文本”,或下载为 data.yaml。

JSON 如何变为 YAML

YAML 1.2 规范力求使 YAML 成为 JSON 的严格超集,因此 JSON 文本本身就是有效的 YAML 数据。转换保持数据不变,只改变书写方式:对象变为形如 name: value 的行,数组变为每项前带短横线的列表,嵌套以缩进而非括号表示。

  • 字符串、数字、true、false 和 null 保持其值。若 YAML 会把某个字符串读作其他类型,例如 "true" 或 "123",则将其写在引号中,使它保持为字符串。
  • 日期如2026-11-10保持为普通文本,因为 YAML 1.2 不把它读作日期。yes 和 on 也保持为文本,因为 YAML 1.2 只把 true 和 false 读作布尔值。

数字、名称与多行文本

整数保留全部数位:12345678901234567890按输入的原样写出。小数则写作最接近的 JavaScript 数字,因此1.50变为1.5,值不变。有效数字超过约15位的小数,末尾几位可能改变。

名称保持它们在 JSON 中的顺序,包括2024这类名称;JavaScript 对象会把它们移到最前面。含有换行的字符串写成块,因此每一行仍然各占一行。

示例:默认的 JSON

默认 JSON 是一个含五个名称的对象:name、free、tags、version 和 license。tags 下的列表变为 YAML 列表,每项前有短横线和两个空格。

使用两个空格缩进,结果为表中的八行,读回后数据相同。

行 写出的 YAML
1 name: FireToolLand
2 free: true
3 tags:
4 - json
5 - csv
6 - yaml
7 version: 2.1
8 license: null

常见问题

YAML 与 JSON 相同吗?

并不完全相同。但 YAML 1.2 规范力求使 YAML 成为 JSON 的严格超集,因此数据在转换中得以保留。YAML 用缩进代替括号,人读起来更容易。

为什么 YAML 中有些字符串带引号?

若 YAML 会把某个字符串读作其他类型,例如 "true"、"123" 或 "null",就把它写在引号中,使它保持为字符串。其他字符串则直接写出,不加引号。

数字会被改动吗?

整数保留全部数位,因此12345678901234567890保持不变。小数写作最接近的数字,因此1.50变为1.5,值相同。

为什么要用两个或四个空格缩进?

YAML 用空格而非制表符表示嵌套。两个空格使文件更短,四个空格则更宽。两者读回后的数据相同,因此请选择您的项目所用的风格。

同一对象中重复出现的名称为什么会被拒绝?

YAML 映射中每个名称只保存一个值,第二个值会在没有任何提示的情况下丢失。工具要求您删除重复的名称,而不是猜测保留哪一个值。

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

不会。转换由 yaml 程序库在您的浏览器中完成,您粘贴的内容不会发送到我们的服务器。

资料来源

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

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