UtilForge

YAML 格式化与验证 - 在线格式化 YAML

免费 YAML 格式化、验证和 lint 工具。在浏览器中格式化、lint、验证和转换 YAML 文件。

在此粘贴您的 YAML...

什么是 YAML?

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言。它常用于配置文件、语言间数据交换以及数据存储或传输。YAML 语法设计为易于阅读和编写,使用缩进来表示数据结构,在 DevOps、CI/CD 流水线(GitHub Actions、GitLab CI)、Docker Compose、Kubernetes 和 Ansible 中非常流行。

YAML 与 JSON 对比

YAML 和 JSON 都是数据序列化格式,但用途不同。YAML 采用缩进的简洁语法,注重人类可读性,支持注释、锚点和复杂数据类型。JSON 使用花括号和方括号的严格语法,更面向机器,是 Web API 的标准格式,解析速度更快。YAML 是 JSON 的超集,意味着任何有效的 JSON 都是有效的 YAML。我们的工具可以在两种格式之间无缝转换。

YAML 示例

基本 YAML

name: 张三
age: 30
active: true
skills:
  - Python
  - JavaScript
  - DevOps

Docker Compose

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - 8080:80
    volumes:
      - ./app:/usr/share/nginx/html

YAML 语法指南

键值对

基本结构:key: value。字符串不需要引号,除非包含特殊字符。

列表

使用 - 前缀表示列表项。每个列表项可以是任何 YAML 类型。

嵌套对象

使用缩进(2 或 4 空格)表示嵌套结构。缩进必须保持一致。

注释

使用 # 表示注释。YAML 支持行内注释和块注释。

如何使用 YAML 格式化工具

  1. 1

    将 YAML 内容粘贴到输入编辑器中

  2. 2

    点击「格式化」美化或「验证」检查错误

  3. 3

    使用「YAML to JSON」或「JSON to YAML」进行格式转换

  4. 4

    复制格式化后的输出或下载为文件

常见问题

YAML 用于什么场景?

YAML 主要用于软件开发和 DevOps 中的配置文件。常见用途包括 Docker Compose 文件、Kubernetes 清单、CI/CD 流水线定义(GitHub Actions、GitLab CI)、Ansible playbooks 和应用配置。YAML 的可读性使其非常适合开发者和运维人员需要手动阅读和编辑的文件。

在线验证 YAML 安全吗?

安全。我们的 YAML 验证器完全在您的浏览器中使用 JavaScript 运行。您的 YAML 数据永远不会离开您的设备——我们不会上传、存储或分享任何数据。所有解析、验证和转换都在您本地机器上完成。

YAML 可以转换为 JSON 吗?

可以。YAML 是 JSON 的超集,任何 JSON 文档都是有效的 YAML,大多数 YAML 也可以转换为 JSON。我们的工具提供一键在 YAML 和 JSON 之间双向转换的功能。注意某些 YAML 特有功能(如锚点和别名)可能没有直接的 JSON 等价物。

常见的 YAML 错误有哪些?

常见的 YAML 错误包括:缩进不一致(混用 Tab 和空格)、使用 Tab 而非空格、键后缺少冒号、列表格式不正确、未加引号的字符串被误解析为其他 YAML 类型(如 true、false、null 或数字)。我们的验证器会捕获这些错误并显示具体位置。

如何格式化或验证 Docker Compose 文件?

将您的 docker-compose.yml 粘贴到输入编辑器中,点击「验证」检查 YAML 语法,然后点击「格式化」整理缩进。请注意,此工具只检查 YAML 语法——不验证 Docker 特有的语义,如镜像名称或端口范围。

什么是 YAML 锚点和别名?

锚点(&name)标记 YAML 中的一块内容,之后可以用别名(*name)复用。这是避免重复的内置方式——例如,定义一个默认 settings 块,并从多个服务中引用它。锚点和别名是 YAML 独有的功能,JSON 没有直接对应的概念,这就是为什么将带锚点的 YAML 转换为 JSON 时会展开被复用的内容。

YAML 和 TOML 相比——我应该使用哪种格式?

YAML 更灵活,在 DevOps 工具中广泛使用(Docker Compose、Kubernetes、Ansible、GitHub Actions)。TOML 更严格、更简单,专为配置文件设计,常用于 Rust(Cargo.toml)和 Python(pyproject.toml)等生态系统。如果文件需要人工手动编辑,YAML 通常更友好;对于嵌套很少的简单键值配置,TOML 是不错的选择。

发现此工具有问题?

报告问题