什么是JSON转YAML?

JSON 转 YAML 转换器可将 JSON 数据转换为简洁易读的 YAML 格式,该格式常用于配置文件(Docker Compose、Kubernetes、CI/CD 流水线)。它能处理嵌套对象、数组以及多行字符串,并生成符合 YAML 语法的输出。

工具底层使用 js-yaml,能处理多行字符串、锚点和对象数组,不会丢结构。缩进可选 2 或 4 个空格(大多数配置文件用 2)。流式风格让短数组保持单行([a, b, c]),块式风格则每个元素一行。还有「排序键」选项,便于版本控制里的稳定输出。

使用方法

  1. 第一步——粘贴 JSON 数据或上传 .json 文件。无效的 JSON 会在转换前被捕获并高亮显示。
  2. 第二步——设置缩进宽度(2 个或 4 个空格),并选择流样式选项以使数组更紧凑或对象内联。
  3. 第三步——查看带有语法高亮的 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 解析器可能重新排序)。如需稳定顺序,两端都开启「排序键」选项即可。

相关工具