YAML 转 JSON
YAML 手写起来更舒服,JSON 用程序消费起来更舒服,而很多现代工具(CI 流水线、Kubernetes、Ansible)两者都接受。当你需要把配置粘进一个只认 JSON 的工具时,API Gateway 定义、CloudFormation 模板、某些 webhook 请求体,这个转换工具就能完成这一往返。锚点、合并以及 YAML 特有的类型(日期、八进制、null、~)都会被规整为 JSON 的对应形式。
如何把 YAML 转成 JSON
-
1
粘贴 YAML
任意有效的 YAML 1.1 或 1.2 文档。
-
2
解析锚点
锚点(`&x`)和别名(`*x`)会被内联展开。合并键(`<<`)会被扁平化。
-
3
规整类型
日期、null 值、布尔值都会被转换为 JSON 的对应形式。
-
4
输出 JSON
美化或压缩,随你选择。
转换示例
YAML:
defaults: &defaults
timeout: 30
retries: 3
production:
<<: *defaults
host: prod.example.com
debug: false
staging:
<<: *defaults
host: staging.example.com
debug: true
JSON(锚点已解析):
{
"defaults": {
"timeout": 30,
"retries": 3
},
"production": {
"timeout": 30,
"retries": 3,
"host": "prod.example.com",
"debug": false
},
"staging": {
"timeout": 30,
"retries": 3,
"host": "staging.example.com",
"debug": true
}
}
类型映射
| YAML | JSON |
|---|---|
| 字符串 | 字符串 |
| 整数 | 数字 |
| 浮点数 | 数字 |
布尔值(true、false) |
布尔值 |
空值(null、~、空白) |
null |
| 时间戳 | ISO 8601 字符串 |
| 序列(列表) | 数组 |
| 映射 | 对象 |
JSON 无法表示的 YAML 特有内容
- 注释。 JSON 没有标准的注释语法。注释会被丢弃。
- 多文档流(
---分隔符)。JSON 一个文件一份文档;当有多份时,转换工具会输出一个文档数组。 - 锚点和别名。 被解析并内联复制。
- 复杂键(非字符串的映射键)。JSON 的键必须是字符串;复杂键会被字符串化。
1.1 与 1.2 的陷阱
- YAML 1.1 会把
yes、no、on、off、y、n解析为布尔值。作为国家代码的NO会悄悄变成false。 - YAML 1.2 把布尔值限制为
true和false。更安全,但许多解析器(包括 PyYAML 的默认行为)仍用 1.1。
转换工具默认采用 1.2 语义,并在 1.1 会改变结果时发出警告。
从 JSON 往返回 YAML
JSON 转 YAML 通常是无损的(JSON 是 YAML 1.2 语法的子集)。YAML 转 JSON 是有损的:注释和合并键结构会消失。如果你打算往返,就在版本控制中保留原始的 YAML。
常见问题
不会,那些有自己的模板机制,在 YAML 解析之前运行。先渲染模板(用 kustomize build 或 helm template),再把输出喂到这里。
YAML 时间戳在 JSON 中变成 ISO 8601 字符串。2026-04-18 变成 "2026-04-18"。时间和时区会被保留。
浏览器中的实际上限约为 10 MB。对于更大的文件,在命令行使用 yq 或 python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))"。
不会。转换在你的浏览器中运行,不会传输任何内容。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
Markdown 图片生成器
生成带替代文本、title 属性和可选链接的 Markdown 图片语法。支持内联格式和引用格式输出。
IBAN 验证工具
在本地检查 IBAN 的注册国家长度、国内结构和 MOD 97-10 校验位。不上传数据,也不表示账户真实存在。
Luhn 算法校验工具
验证信用卡号、IMEI、SIN及其他受Luhn校验保护的号码。返回验证结果(通过或失败),并显示每个校验步骤及校验和计算过程。
此工具还提供其他语言版本
- YAML → JSON [KO]
- YAML para JSON [PT]
- YAML a JSON [ES]
- YAMLからJSONへ [JA]
- YAML naar JSON [NL]
- Chuyển đổi từ YAML sang JSON [VI]
- YAML en JSON [FR]
- YAML zu JSON [DE]
- YAML ถึง JSON [TH]
- YAML till JSON [SV]
- من YAML إلى JSON [AR]
- YAML ke JSON [ID]
- YAML do JSON [PL]
- YAML in JSON [IT]
- От YAML к JSON [RU]
- YAML'dan JSON'a [TR]
- YAML to JSON [EN]