Kubernetes YAML 转 JSON 要注意什么?
围绕 K8s、Docker Compose、CI 配置解释 YAML 与 JSON 互转时的缩进、数组、布尔值问题。
打开 YAML/JSON 互转工具YAML 对缩进非常敏感
Kubernetes、Docker Compose、GitHub Actions 等配置大量使用 YAML。YAML 可读性好,但缩进、层级和数组写法稍有错误,就可能导致配置含义变化。
转换为 JSON 后,层级会更直观,适合排查某个字段到底属于哪个对象。
- 同一层级保持相同空格数,不要混用 Tab。
- 数组项使用 - 表示,转换后会变成 JSON 数组。
- 冒号后建议保留空格,例如 name: demo。
布尔值和数字可能被自动识别
YAML 中 true、false、123 这类值可能被解析为布尔值或数字。如果你希望它们保持字符串,应加引号。
K8s 配置中的镜像 tag、环境变量、版本号尤其要注意。比如 001、1.0、false 在不同解析器里可能产生不同类型。
多文档 YAML 怎么处理
K8s 配置经常用 --- 分隔多个资源对象。转换时要确认工具是否支持多文档。如果只转换第一段,剩余资源可能被漏掉。
复杂配置上线前,仍建议使用 kubectl 或 CI 流程做最终校验。
常见问题
YAML 和 JSON 哪个更适合配置?
YAML 更适合人工编写,JSON 更适合程序处理。团队可以根据工具链选择。
YAML 转 JSON 会改变字段顺序吗?
多数情况下不会影响语义,但对象字段顺序本身不应作为业务逻辑依赖。
K8s 配置转换后能直接 apply 吗?
理论上 JSON 也可用于 Kubernetes,但上线前要用官方工具校验资源定义。