JSON 和 YAML 的结构如何对应?
| JSON 结构 | YAML 写法 | 适合的阅读场景 |
|---|---|---|
对象 {"port":8080} | port: 8080 | 应用参数和键值配置 |
| 嵌套对象 | 使用缩进表达层级 | 服务、环境和资源配置 |
数组 ["a","b"] | 每项使用 - | 标签、命令、容器列表 |
| 特殊字符字符串 | 会使用 JSON 风格引号 | 避免 true、null 等文本被误读为其他类型 |
转换结果为什么不能直接当作生产配置?
YAML 只是表达数据结构的一种格式,不知道 Kubernetes、Docker Compose 或 CI 平台要求哪些字段、哪些值可选、哪些字段必须是字符串。转换结果解决的是“从 JSON 看不清层级”的问题,不是“自动生成可部署文件”。
适合直接使用的情况
把接口示例、文档片段或已有 JSON 配置转换成更容易讨论和编辑的 YAML 草稿。
必须再校验的情况
要提交给 Kubernetes、GitHub Actions、Docker Compose 或任何有严格 schema 的系统时。
部署前检查清单
- 确认目标系统的字段名、层级和 YAML 版本要求。
- 检查字符串、环境变量、路径和多行文本是否需要额外引号或块标量。
- 使用目标 CLI、IDE 插件或 CI 校验器验证,而不是只依赖通用转换结果。
YAML 的缩进本身就是语法。复制结果到目标文件后,不要随意混用 Tab 和空格,也不要只根据视觉对齐判断正确性。
常见问题
- 数组和嵌套对象支持吗?
- 支持。数组会使用列表写法,嵌套对象会按层级缩进。
- 字符串为什么有时会带引号?
- 当字符串可能和布尔值、null、路径或特殊字符混淆时,工具会使用引号保留文本含义。
- 可以把 YAML 再转回 JSON 吗?
- 当前页面只提供 JSON 转 YAML。若需要双向转换,应使用能解析目标 YAML 版本和自定义标签的专用工具。