跳到正文
SPCXTools

YAML转JSON转换器

在YAML和JSON之间双向转换配置文件,内置语法检查功能。

本地运行——文件不会离开你的设备

正在加载工具…

如何使用YAML转JSON转换器

  1. 1选择转换方向 — YAML → JSON 或 JSON → YAML。
  2. 2将您的YAML或JSON代码粘贴到左侧输入框,或点击 示例。
  3. 3转换结果会随着您的输入实时显示在右侧。若有语法错误,会在下方提示详细描述。
  4. 4复制结果或将其下载为 .json 或 .yaml 文件。切换转换方向会将当前结果移至输入框。

YAML 和 JSON 互转

YAML 和 JSON 是最常用的两种配置和结构化数据格式。Kubernetes 资源清单、Docker Compose 文件、CI 流水线和 OpenAPI 规范通常使用 YAML 编写,而 API、JavaScript 代码及许多工具则主要使用 JSON。本转换器支持边输入边进行双向实时转换,并在输入内容无效时提供精准的错误提示。

功能特点

  • 双向转换:YAML → JSON 和 JSON → YAML,支持一键切换。
  • 语法验证:针对缩进错误、引号未闭合和无效 JSON 提供清晰的错误提示。
  • 多文档 YAML:自动转换为 JSON 数组。
  • 锚点、别名和合并键:自动解析。
  • 2 或 4 个空格缩进:支持自定义输出缩进。
  • 复制或下载:将结果保存为 .json 或 .yaml 文件。
  • 隐私保护:所有操作均在本地完成,不会向服务器发送任何数据。

示例

以下 YAML:

name: web-app
replicas: 3
ports:
  - 80
  - 443
env:
  NODE_ENV: production

将转换为以下 JSON:

{
  "name": "web-app",
  "replicas": 3,
  "ports": [80, 443],
  "env": {
    "NODE_ENV": "production"
  }
}

常见的 YAML 错误

  • 使用 Tab 缩进。 YAML 仅允许使用空格。请将 Tab 替换为两个空格。
  • 缩进不一致。 同一层级的项目必须保持完全相同的缩进量。
  • 冒号后缺少空格。 key:value 会被读取为单个字符串;请写成 key: value。
  • 字符串中包含特殊字符。 以 @、*、&、!、%、{ 或 [ 开头,或者包含 : 的值,需要加引号。
  • 意外的数据类型。 像 1.10 这样的版本号会变成数字 1.1,并且前导零可能会丢失。对于必须保持文本格式的值,请加上引号。

相关工具

使用 JSON 格式化工具 美化或压缩生成的 JSON,使用 JSON 转 CSV 将 JSON 转换为电子表格,或者使用 文本对比工具 比较两个配置文件。

常见问题

YAML 和 JSON 有什么区别?
两者描述相同类型的数据——对象、列表、字符串、数字、布尔值和 null。JSON 使用大括号、方括号和引号,是 API 的标准格式。YAML 使用缩进代替方括号,允许添加注释,常用于 Docker Compose、Kubernetes、GitHub Actions 和 Ansible 等配置文件。
YAML 中的注释会怎样处理?
JSON 不支持注释,因此在将 YAML 转换为 JSON 时,注释会被丢弃。如果再转换回 YAML,将不会包含原来的注释。
如何处理包含多个文档的 YAML 文件?
一个 YAML 文件可以包含由 --- 分隔的多个文档。遇到这种情况时,转换器会输出一个 JSON 数组,每个文档对应数组中的一个元素。
是否支持锚点和别名?
支持。锚点(&name)、别名(*name)和合并键(<<: *name)都会被解析,因此生成的 JSON 会包含完整的展开值。
为什么我的值类型变了,比如 "no" 变成了 false?
本工具遵循 YAML 1.2 规范,其中只有 true 和 false 是布尔值。旧版的 YAML 1.1 解析器会将 yes、no、on 和 off 也视为布尔值。如果您需要保持字符串类型,请加上引号。
我的数据会被上传吗?
不会。解析和转换都在您的浏览器中进行,因此包含机密信息或内部主机名的配置文件绝不会离开您的设备。