什么是JSON转YAML?
JSON 转 YAML 转换器可将 JSON 数据转换为简洁易读的 YAML 格式,该格式常用于配置文件(Docker Compose、Kubernetes、CI/CD 流水线)。它能处理嵌套对象、数组以及多行字符串,并生成符合 YAML 语法的输出。
工具底层使用 js-yaml,能处理多行字符串、锚点和对象数组,不会丢结构。缩进可选 2 或 4 个空格(大多数配置文件用 2)。流式风格让短数组保持单行([a, b, c]),块式风格则每个元素一行。还有「排序键」选项,便于版本控制里的稳定输出。
使用方法
- 第一步——粘贴 JSON 数据或上传 .json 文件。无效的 JSON 会在转换前被捕获并高亮显示。
- 第二步——设置缩进宽度(2 个或 4 个空格),并选择流样式选项以使数组更紧凑或对象内联。
- 第三步——查看带有语法高亮的 YAML 输出,然后复制或下载为 .yaml 文件以用于配置文件中。
何时使用
- 把 package.json 或 tsconfig.json 的片段翻译成 CI 工具需要的 YAML 形式。
- 从接口响应或脚手架生成的 JSON 写出 Kubernetes 清单、Docker Compose 文件。
- 把旧工具的 JSON 配置转成升级后工具用的、更易读的 YAML。
结果
您需要将 package.json 转换为 CI 流水线的 YAML 配置。粘贴 JSON,设置 2 格缩进,即可获得清晰的 YAML 输出,嵌套的依赖关系一目了然,无需那些繁杂的花括号和引号。
常见问题
- YAML 是不是只是换种语法的 JSON?
- 基本上是。YAML 1.2 是 JSON 的超集,所以任何合法 JSON 也是合法 YAML。YAML 多了注释、多行字符串、锚点别名和靠缩进的布局。对纯数据而言,两者可以互换。
- 应该用 2 个空格还是 4 个空格缩进?
- Kubernetes、Docker Compose、GitHub Actions 以及大多数 CI 工具都用 2 个空格。4 个空格在层级特别深时更易读,但不常见。跟着团队现有文件保持一致,diff 才不会乱。
- 什么时候该切到流式风格?
- 流式风格({a: 1, b: 2})适合放短的原始值数组——比如一串端口号——块式风格里它们一条一行显得啰嗦。需要人眼浏览或手改的内容,还是用块式。
- 看起来像布尔值或数字的字符串会怎么处理?
- YAML 的隐式类型转换比较激进:'yes'、'no'、'on'、'1.0'、'null' 会被重新解释。工具会给这种字符串自动加引号,避免经典的「挪威」问题:国家代码 NO 被解析成 false。
- JSON 和 YAML 之间来回转换会丢内容吗?
- 纯数据的话不会,结构是保留的。会丢失的是注释(JSON 本来没有)和某些键的顺序(JSON 解析器可能重新排序)。如需稳定顺序,两端都开启「排序键」选项即可。