跳到主要内容
← 返回

YAML JSON 转换器 - 在线双向转换

数据
本地运行 · 不上传

在线 YAML 和 JSON 双向转换工具:YAML 转 JSON,JSON 转 YAML。保持数据结构,支持嵌套对象和数组。

结果有帮助吗?

本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。

下一步

使用指南

YAML 好于给人读(K8s、CI、Compose),JSON 长于给程序读(API、配置下发)。两边来回转是日常操作,也是缩进错误的重灾区。本工具双向转换,并在 YAML 出错时给出针对性提示——全部本地解析,配置内容不上传。

1. YAML ↔ JSON

默认示例已包含映射与列表,可先跑通再换成自己的配置。转换保持数据结构等价,但 YAML 的注释在转成 JSON 后会丢失——这是格式能力差异,不是工具漏了。

  1. YAML → JSON:左侧粘贴 YAML,点击转换,右侧得到等价 JSON。
  2. JSON → YAML:在 JSON 侧粘贴,反向转换得到缩进清晰的 YAML。
  3. 出错时阅读提示:缩进混用、冒号后缺空格、列表短横线位置等会被点名。

2. YAML 最常踩的坑

JSON 侧常见问题则是尾逗号、单引号、未转义换行。先把 JSON 在格式化工具里修到合法,再转 YAML,能少走一半弯路。

  • Tab 与空格混用:YAML 禁止 Tab 缩进,编辑器显示「对齐」但解析失败。
  • 冒号后必须有空格:key:value 非法,key: value 才合法。
  • 列表项短横线与缩进层级:子项必须比父级更深一层,对齐错误会变成别的结构。
  • 未加引号的特殊字符:含冒号、#、{ } 的字符串最好加引号。

3. 典型使用场景

相关下一步:结构要对齐时用 JSON Diff;要从 JSON 生成类型定义时用 JSON→TypeScript / Go / Java。本页只负责格式互换,不校验业务 schema——那是 JSON Schema 校验器的工作。

  • 把 docker-compose / GitHub Actions YAML 片段转成 JSON 交给只吃 JSON 的工具链。
  • 把 API 响应 JSON 转成 YAML,方便贴进设计文档给人读。
  • 对比「肉眼相同」的两份配置前,先统一成同一种格式再做 diff。

4. 大整数与精度边界

浏览器里的 JSON 数字受 IEEE-754 限制:超过 2^53-1 的整数会丢精度。本页在 JSON→YAML 方向会尽量把超大整数写成字符串形态以保住位数;YAML→JSON 仍受解析器数字类型限制——订单号、雪花 ID 这类字段,源头就用引号包成字符串更稳。转换成功不等于「业务上可往返」:精度丢了,diff 看起来只是数字变了。

5. 多文档与锚点:本页不覆盖的能力

  • 以 --- 分隔的多文档 YAML 常见于 Helm/K8s 清单;本页按单文档解析,遇到多文档请先拆开再转。
  • 锚点与别名(&anchor / *alias)是 YAML 独有复用语法,转成 JSON 后会展开成重复结构,别名本身不会保留。
  • 布尔与空值的 YAML 方言(yes/no/on/off、~)会被解析成 true/false/null——若你其实想要字符串 "yes",请加引号。

6. 和「先格式化再转换」的工作流

脏 JSON(尾逗号、注释伪 JSON)应先过 JSON 格式化/校验,再进本页;脏 YAML 则直接看本页报错提示修缩进。两边都合法后,再用文本 diff 或 JSON diff 做变更审查。把转换页当成「语法闸门」,比当成「随便贴就出结果」更不容易把坏配置推进仓库。K8s/CI 场景里,先 YAML→JSON 再丢给只认 JSON 的校验器,是把「缩进错误」提前暴露的常用手法;反过来,JSON→YAML 则方便把接口样例写进给人读的 RFC/设计文档。转换前后用 JSON Diff 或文本 Diff 看一眼结构是否等价,能捕捉「布尔被写成字符串」或「大整数被截断」这类静默变化。

常见问题

最主要是 YAML 注释:转成 JSON 后必然丢失,这是格式能力差异而非工具缺陷,注释重要请保留 YAML 母版。数据结构本身双向等价。

有可能。浏览器 JSON 数字受 2^53-1 限制:JSON→YAML 方向会尽量把超大整数写成保位数的形态,YAML→JSON 仍受解析器限制。订单号、雪花 ID 这类字段,源头就写成字符串最稳。

本页按单文档解析,--- 分隔的多文档(Helm/K8s 清单常见)请先拆开。锚点/别名(&anchor / *alias)会展开为重复结构,别名不保留;yes/no/on/off 和 ~ 会被解析成布尔或 null,想要字符串请加引号。

大概率是四件事之一:Tab 与空格混用(YAML 禁止 Tab 缩进);冒号后缺空格(key: value 才合法);列表短横线比父级缩进浅;含冒号、#、{} 的字符串没加引号。本页会逐条点名提示。JSON 侧则常见尾逗号和单引号——先过格式化工具修到合法再转。

典型场景:把 docker-compose / GitHub Actions 片段转成 JSON 喂给只吃 JSON 的工具链;把 API 响应转成 YAML 贴进给人读的设计文档;「肉眼相同」的两份配置先统一格式再 diff。结构对齐用 JSON Diff,生成类型用 JSON→TypeScript/Go/Java——本页不校验业务 schema。

可以:解析全部在本机浏览器里跑完,配置不出这台机器,也没有用量门槛。

相关工具

相关文章