YAML 解析器

解析 YAML 并转换为 JSON,支持双向转换和校验。所有处理在浏览器中完成。

YAML转JSON JSON转YAML 验证与检查
键数
0
嵌套深度
0
大小
0 B

如何使用 YAML 解析器

1

选择方向

选择 YAML 转 JSON 或 JSON 转 YAML。

2

输入内容

在输入框中粘贴 YAML 或 JSON 数据。

3

转换

点击转换按钮,查看结果并可复制。

什么是YAML?

YAML(YAML不是标记语言)是一种人类可读的数据序列化标准,可以与所有编程语言配合使用,常用于配置文件。

主要特性

人类可读

设计为人类可以轻松读写,开销最小

广泛使用

常用于Docker、Kubernetes、CI/CD等配置文件

数据类型

支持字符串、数字、布尔值、列表、映射和多行内容

常见问题

YAML 和 JSON 有什么区别?

YAML 更注重可读性,支持注释和多行字符串;JSON 更简洁,解析更快。两者可以互相转换。

YAML 缩进有什么要求?

YAML 使用空格缩进表示层级关系,不能使用 Tab 键。同一层级的元素必须使用相同的缩进。

支持哪些 YAML 特性?

支持基本的数据类型、列表、映射、多行字符串和锚点/别名。不支持复杂的自定义标签。

YAML 与 JSON 有什么关系?

YAML 1.2 被明确设计为 JSON 的严格超集——每个有效的 JSON 文档都是有效的 YAML,而 JSON 是 YAML 推荐的互操作子集。YAML 在此之上增加了注释、锚点、块标量和类型强制转换。这种关系使 YAML 到 JSON 的转换无损,而这正是本工具所执行的转换。

什么是 YAML 锚点、别名和合并键?

&anchor 为节点命名,*alias 复用该节点,<<: 则将一个映射合并到当前映射中。常见模式:定义 defaults: &d 并包含 retries 和 timeout,然后编写 prod: { <<: *d, retries: 10 },即可继承 timeout 同时覆盖 retries。这种去重机制源自 YAML 1.1,目前几乎所有工具仍然支持。

YAML 中的“挪威问题”是什么?

YAML 1.1 会把裸字符串 NO 强制转换为布尔值 false——no、on、off、yes、y 和 n 也一样。国家列表 [NO, SE, DK] 会静默地变成 [false, SE, DK]。YAML 1.2 收紧了这一规则(只有 true 和 false 才是布尔值),但许多解析器仍保留 1.1 的行为,因此解决办法是加引号:"NO"。本解析器会准确展示每个标量的解析结果。

哪些工具和格式使用 YAML?

YAML 在运维和 CI 配置领域占据主导地位:Kubernetes 清单、Docker Compose、GitHub Actions、GitLab CI、Ansible playbook 和 OpenAPI 文档都是 YAML。.yml 和 .yaml 扩展名可以互换使用,其中 .yaml 是规范中规定的标准写法。

YAML 中的多行字符串如何工作?

使用 | 表示字面量块(literal block,换行符原样保留,非常适合代码),使用 > 表示折叠块(folded block,换行符变成空格,段落折叠)。两者默认都会剪除一个末尾换行符;剪裁指示符可以调整这一行为:|- 去除所有末尾换行符,+ 则全部保留。键下方的缩进决定了块的边界。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}