JSON 转 YAML — 将 JSON 转为 YAML 配置
将 JSON 数据转换为 YAML 配置格式。支持块格式、流格式、多文档输出 —— 全部在浏览器中完成,无需上传。
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 只是配置的骨架 —— 环境相关的值、密钥和资源限制都需要手工补全。
使用方法
粘贴你的 JSON
拖入一个 JSON 对象或粘贴一段 JSON 字符串。转换器会遍历整个结构,以 2 空格缩进的块格式输出 YAML。
选择输出格式
在块格式(可读性好、多行、标准的 YAML)和流格式(括号包裹、单行、兼容 JSON 语法)之间切换。配置文件默认采用块格式。
复制或下载 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
- 完全在客户端运行。转换是即时的。