ToolConvoyToolConvoyv2.6
DATA

JSON 转 YAML — 将 JSON 转为 YAML 配置

将 JSON 数据转换为 YAML 配置格式。支持块格式、流格式、多文档输出 —— 全部在浏览器中完成,无需上传。

● 本地运行 · 零拷贝流水线页面加载以来工具发出的网络请求:0 次

YAML 赢得了配置格式之战。Kubernetes、Docker Compose、GitHub Actions、Ansible、CircleCI,几乎所有现代 DevOps 工具都把 YAML 作为首选配置语言。JSON 在配置领域败下阵来,原因是没有注释机制、引号要求严苛、视觉上也不易扫读 —— 尽管 YAML 在技术上其实是 JSON 的超集,任意合法的 JSON 文件本身也是合法的 YAML。把 JSON 配置、API 响应或数据导出转成 YAML,是从基于 JSON 的工具迁移到基于 YAML 工具的第一步;由于两种格式共享同一套数据模型,这一步转换本身相当直接。

唯一不那么直接的转换决策是块格式 vs 流格式的选择。块格式(key:\n nested: value)是 YAML 在配置场景的惯用形式,因为它读起来像大纲,在版本控制里 diff 也清晰。流格式({key: {nested: value}})是 JSON 的内联语法,结构紧凑,但深层嵌套时就难以阅读。转换器默认采用块格式,因为配置文件才是 JSON-to-YAML 转换的主要消费方。流格式开关留给日志条目、API 响应和数据交换 —— 这些场景里紧凑性比可读性更重要。

转成 YAML 后,最常见的后续动作是把输出接入 CI/CD 流水线(GitHub Actions workflow、CircleCI 配置)、容器编排工具(Kubernetes manifest、Docker Compose 文件),或基础设施即代码工具(Ansible playbook、Terraform variables 文件)。生成的 YAML 只是配置的骨架 —— 环境相关的值、密钥和资源限制都需要手工补全。

广告

使用方法

  1. 粘贴你的 JSON

    拖入一个 JSON 对象或粘贴一段 JSON 字符串。转换器会遍历整个结构,以 2 空格缩进的块格式输出 YAML。

  2. 选择输出格式

    在块格式(可读性好、多行、标准的 YAML)和流格式(括号包裹、单行、兼容 JSON 语法)之间切换。配置文件默认采用块格式。

  3. 复制或下载 YAML

    把 YAML 复制到剪贴板,或下载为 .yml 文件。输出符合 YAML 1.2 规范,可被 PyYAML、ruamel.yaml、go-yaml 和 js-yaml 正常解析。

常见问题

该用块格式还是流格式?

配置文件(Kubernetes manifest、Docker Compose、CI/CD 流水线)默认用块格式,因为它可读性好,也方便在版本控制中看 diff。日志条目和数据交换默认用流格式(`{key: value, ...}`),这些场景下紧凑性更重要,且结构简单到内联语法也读得过去。

YAML 的 anchor 和 alias 是怎么生成的?

本转换器不会自动检测重复的子结构来生成 anchor 和 alias。如果 JSON 对象中存在重复的深层结构,生成的 YAML 会逐字重复该结构。生成之后,如果有需要,请手动把重复的块改写成 YAML anchor(`&name`)和 alias(`*name`)。

支持多文档 YAML 吗?

支持 —— 开启「multi-document」开关后,顶层 JSON 数组的每个元素之间会插入 `---` 分隔符。多文档 YAML 是 Kubernetes 资源列表和 CI/CD 流水线配置的标准格式。

字符串的引号怎么处理?

默认情况下,不含 YAML 特殊字符的字符串值不带引号输出。但以特殊字符(`|`、`>`、`!`、`&`、`*`、`%`、`` ` ``)开头、看起来像数字,或包含 YAML 控制字(`true`、`false`、`null`、`yes`、`no`、`on`、`off`)的字符串会被自动加引号,避免被错误解读。

JSON 的数字和 YAML 的数字怎么对应?

JSON 中的整数会变成 YAML 整数,带小数的会变成 YAML 浮点数。`1e10` 会被转成 YAML 整数 `10000000000`。如果原始字符串形式很重要(如产品代码里的前导零),该值会作为字符串加引号输出。

限制说明

  • 不会保留注释YAML 支持 `#` 注释,但 JSON 不支持。所以输出里没有任何注释。如果你的 YAML 配置需要内联说明,请手工添加。
  • 不输出 YAML 标签指令YAML 的标签系统(`!!str`、`!CustomType`)不会被输出。输出是无标签的 YAML。如果消费方在自定义反序列化时需要标签,请手工补上。
  • 缩进固定为 2 空格YAML 规范允许任何一致的缩进,但 2 空格是行业惯例(Kubernetes、Docker、GitHub Actions)。部分工具要求 4 空格缩进 —— 如有需要请手工调整。

平台说明

macOS
生成的 YAML 可在任何支持 YAML 的编辑器中打开。当需要把一个 JSON 配置临时转成 YAML 配置(例如 Docker Compose 或 Kubernetes manifest)时,这个浏览器工具就是合适的选择。
Windows
生成的 YAML 可在任何支持 YAML 的编辑器中打开。当 JSON API 响应要变成配置文件时,用它做一次性转换正合适。
Linux
命令行场景下,`yq eval -P` 可以细粒度地把 JSON 转成 YAML。当机器上没有装 `yq` 需要做一次性转换时,本浏览器工具就是合适的选择。
Web
完全在客户端运行。转换是即时的。
广告

相关工具

广告