首页 YAML 转 JSON

YAML 转 JSON 转换器

粘贴 YAML,立即获得整洁、带缩进的 JSON——严格验证、复制和下载,100% 在浏览器中运行。

输入 YAML

JSON 输出

什么是 JSON?

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的、基于文本的数据交换格式,源自 JavaScript 的对象字面量。它将数据表示为对象({ })、数组([ ])、字符串(双引号)、数字、布尔值(true/false)和 null。JSON 是 REST API、NoSQL 文档存储(MongoDB、CouchDB)、配置文件和嵌入数据的事实标准,因为几乎所有编程语言都内置了快速的 JSON 解析器。

与 YAML 不同,JSON 严格要求双引号字符串、元素之间用逗号分隔,并用大括号界定结构。这使它更冗长,但也更确定、更易解析——这正是它在机器间通信领域占据主导的原因。

为什么要将 YAML 转换为 JSON?

YAML 和 JSON 描述相同的数据结构——对象、数组、字符串、数字、布尔值和 null——因此对于 JSON 数据模型而言,它们之间的转换是无损的。您可能希望将 YAML 转换为 JSON 的原因有:

  • API 消费。大多数 API 使用 JSON。将 YAML 配置转换为 JSON 后,可直接提供给期望 JSON 的客户端或服务。
  • 工具链。许多库、linter 和 CI 工具只接受 JSON。转换让您能在仅支持 JSON 的流水线中复用 YAML 编写的数据。
  • 程序化解析。每种语言都自带原生 JSON 解析器,而 YAML 解析器远没有那么普遍。JSON 解析更快、更安全。
  • 嵌入 JavaScript。JSON 是合法的 JavaScript,因此转换后的输出可直接粘贴到源代码中。

反之,如果需要人类阅读或手工编辑数据,YAML 通常是更好的选择。两种格式互补——转换让您在各自擅长的场景中使用。

转换的工作原理

本工具运行内置的 YAML 解析器(不依赖任何外部库),遍历基于缩进的结构并输出等价的 JSON。解析器理解最常见的 YAML 构造:

  • 映射key: value)变为 JSON 对象。每个键被解码为字符串;值可以是标量、嵌套映射或序列。
  • 序列(以 - 开头的行)变为 JSON 数组。项可以是标量、嵌套映射或更深层的序列。
  • 标量会自动判断类型:true/false/yes/no 变为布尔值,null/~ 变为 null,整数和浮点数变为数字,其余皆为字符串。
  • 引号字符串。双引号("...")和单引号('...')字符串始终被视为字符串,并解码其中的转义序列。
  • 流式风格。支持内联数组 [a, b, c] 和内联对象 {a: 1, b: 2}
  • 注释。# 开头的行和行尾 # ... 注释会被忽略。

缩进必须使用空格(绝不能用制表符,YAML 明令禁止)。输出以两空格缩进进行美化,是有效的 JSON,可被任何 JSON 解析器干净地往返处理。

何时使用 YAML 与 JSON

两种格式各有优势。请根据数据的使用方式选择:

  • 使用 YAML用于配置文件、CI/CD 流水线、基础设施即代码清单、文档片段,以及任何人类需要手工读写的场景。
  • 使用 JSON用于 API 负载、NoSQL 文档存储、服务间通信、JavaScript 中的嵌入数据,以及任何机器解析和小体积最重要的场景。

一个实用的工作流是:人类手工用 YAML 编写数据,再在机器需要消费时转换为 JSON。这保持了愉悦的人类编辑体验,同时仍为机器提供快速、严格的解析格式。

需要注意的限制

本转换器覆盖了绝大多数配置文件使用的常见 YAML 子集,但 YAML 有些 JSON 无法表达的功能。需要注意以下几点:

  • 多行字符串。块标量(| 字面式和 > 折叠式)会按其原始内容解析;生成的 JSON 字符串将以 \n 转义的真实换行呈现。
  • 锚点和别名。不支持 YAML 引用(&anchor / *alias)——请改为内联重复结构。
  • 标签和自定义类型。YAML 丰富的类型系统(集合、有序映射、日期、自定义标签)会被缩减为核心 JSON 类型。
  • 注释。JSON 没有注释,因此 YAML 中的注释会从输出中丢弃。
  • 多文档。--- 分隔的 YAML 流会被当作单个文档解析;仅使用第一个文档。

对于大多数用例——Kubernetes 清单、Docker Compose 文件、GitHub Actions 工作流、应用配置——转换后的 JSON 可直接使用。

这个 YAML 转 JSON 转换器免费吗?

是的,完全免费,无需注册、除设备内存外没有任何限制,无需上传——一切在本地运行。

无效的 YAML 会被转换吗?

不会。本工具先验证 YAML,如果无效则显示解析错误。修复 YAML 后再次转换。

解析器支持用制表符缩进吗?

不支持。YAML 禁止用制表符缩进——只能使用空格。遇到制表符时解析器会报错。

可以将 JSON 转回 YAML 吗?

可以。请使用本站配套的"JSON to YAML"工具进行反向转换。

我的数据会被上传吗?

不会。所有解析和转换都在浏览器中进行,YAML 永远不会离开您的设备。