YAML ↔ JSON 在线转换
免费在线转换 YAML 和 JSON 格式,支持双向转换、格式化美化、精准错误行号提示
双向转换
格式化美化
错误行号提示
本地处理
下载导出
YAML 输入
0 B
JSON 输出
0 B
YAML转JSON / JSON转YAML 完全指南
什么是 YAML 和 JSON?
📄 YAML 格式
YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化格式,广泛用于配置文件(如 Docker Compose、Kubernetes、GitHub Actions)。它以缩进表示层级,语法简洁易读。
📋 JSON 格式
JSON(JavaScript Object Notation)是最流行的数据交换格式,被所有主流编程语言原生支持。使用花括号和方括号表示结构,是 Web API 的标准格式。
何时需要 YAML 转 JSON / JSON 转 YAML
✅ YAML 转 JSON 的场景
- 将 Kubernetes/Docker Compose 配置转为 JSON 供 API 消费
- 把 CI/CD 配置(GitHub Actions、GitLab CI)转为 JSON
- 开发调试时验证 YAML 配置正确性
- 将 YAML 数据导入不支持 YAML 的系统
✅ JSON 转 YAML 的场景
- 将 API 返回的 JSON 转为可读性更好的 YAML 配置
- 创建 Helm Chart、Ansible Playbook 等 YAML 配置
- 减小配置文件体积(YAML 比 JSON 更简洁)
- 生成更易于人工编辑的配置文件
转换示例
YAML 示例
name: my-app
version: "1.0.0"
server:
host: localhost
port: 8080
features:
- auth
- logging
转换后的 JSON
{
"name": "my-app",
"version": "1.0.0",
"server": {
"host": "localhost",
"port": 8080
},
"features": ["auth", "logging"]
}
常见问题
Q:YAML 缩进用 Tab 还是空格?
A:YAML 规范要求使用空格缩进,不允许使用 Tab。本工具会自动处理,输出时使用您选择的缩进宽度。
Q:为什么数字被转成字符串?
A:YAML 中加引号的值(如 "8080")会被解析为字符串。去掉引号即可使其转换为数字类型。
Q:如何处理多文档 YAML?
A:YAML 支持用 --- 分隔多个文档,本工具会将第一个文档转换为 JSON。
Q:数据会上传到服务器吗?
A:不会。所有转换完全在您的浏览器本地完成,数据不会发送到任何服务器,完全安全。
YAML vs JSON 格式对比
| 特性 | YAML | JSON |
|---|---|---|
| 可读性 | 极佳,接近自然语言 | 良好,结构清晰 |
| 注释支持 | 支持(# 号) | 不支持 |
| 数据类型 | 自动推断 | 需显式标注字符串 |
| 文件大小 | 较小 | 略大(括号/引号多) |
| 解析速度 | 较慢 | 极快 |
| 常见用途 | 配置文件 | API 数据交换 |
| 浏览器原生支持 | 不支持 | 原生 JSON.parse |
YAML 编写最佳实践
✅ 推荐做法
- 统一使用 2 或 4 个空格缩进
- 字符串值中含特殊字符时加引号
- 布尔值使用
true/false - 用
#添加注释说明配置用途 - 文件以
.yaml扩展名保存
❌ 常见错误
- 混用 Tab 和空格缩进
- 冒号后面没有空格(
key:value错误) - 忘记给含冒号的字符串加引号
- 列表项缩进不一致
- 在需要字符串的地方写
yes/no(会被解析为布尔值)