YAML ↔ JSON 转换

在线互转 YAML 与 JSON,支持三种转换方向、缩进设置与键名排序,出错时报行列号,全程本地处理。

排序

使用说明

  1. 在「转换方向」里选择 YAML 转 JSON、JSON 转 YAML 或 YAML 转 YAML(规范化重排)。
  2. 把内容粘贴到输入框,按需选择 2 或 4 空格缩进,勾选「按键名排序」可让字段按字母顺序输出。
  3. 点击「转换」,结果出现在下方代码区,点击「复制结果」即可取走。
  4. 转换报错时会提示出错的行号与列号,按提示修正原文后再转一次。

常见问题

转换会在服务器上处理我的数据吗?
不会。解析与生成由浏览器里的 js-yaml 库在本地完成,输入与输出都不离开当前页面,断网后页面已加载的部分也能继续转换。
为什么日期变成了字符串?
工具按 JSON_SCHEMA 读取 YAML,日期时间保持为原样的字符串,不会变成日期对象,写回时类型保持稳定。
支持一次转换多个 YAML 文档吗?
不支持。用三个横线分隔的多文档流会报错,请先按分隔符拆开,逐段粘贴转换。
结果为什么不折行?
输出固定不折行,长字符串与长网址保持单行。复制到其他编辑器重新解析时,不会因为折行引入歧义,也方便直接阅读。

使用步骤

  1. 选择转换方向

    下拉框里选 YAML 转 JSON、JSON 转 YAML 或 YAML 转 YAML。第三种按当前选项重新排版原文档,适合统一缩进风格或核对语法。

  2. 粘贴待转换文本

    把 YAML 或 JSON 粘贴到输入框。方向选错也没关系,转换前会先校验格式,内容与方向不匹配时会提示具体原因。

  3. 调整输出选项

    缩进可选 2 或 4 空格;勾选按键名排序后,每层对象的字段按字母顺序重排,比对两份配置时差异更直观。

  4. 转换并复制结果

    点击转换,结果出现在下方代码区,点击复制结果即可取走。没有数据时可以先点填入示例,试一遍再换成自己的内容。

工具详细介绍

这是一款在浏览器里完成的 YAML 与 JSON 互转工具。解析与生成由开源库 js-yaml 在本地执行,输入内容不会发往任何服务器。页面提供三种方向:YAML 转 JSON 输出带缩进的 JSON 文本。JSON 转 YAML 输出层级清晰的 YAML 文档。YAML 转 YAML 按当前选项重新排版,用来统一缩进或核对语法。输出缩进可选 2 或 4 空格,固定不折行,长字符串与长网址保持单行。转换失败时页面直接指出出错的行号与列号,改完再转一次即可。

加载 YAML 时页面固定使用 js-yaml 的 JSON_SCHEMA。这个模式把日期时间当普通字符串处理,数字只保留整数与浮点两类,同一份文件在不同模式下不会读出不同类型。布尔值、null、嵌套对象与数组都能正确对应到 JSON 结构,键名与字符串值原样保留。配置文件、接口样例与部署清单常需要在两种格式之间搬运,粘贴进来即可完成转换。不用安装编辑器插件或命令行工具,手机浏览器也能直接使用。

原理与背景

YAML 与 JSON 共享同一套数据模型:对象、数组、字符串、数字、布尔与 null。转换分两步进行,先把输入读成内存里的数据结构,再按目标格式写出。数据本身在往返后保持一致,变化的只是排版与引号风格。js-yaml 的默认模式会把 2024-01-01 这类日期写法读成日期对象,跨语言传输时容易出现类型分歧。本工具固定使用 JSON_SCHEMA,日期与时间按普通字符串处理,写进 JSON 时不会变成意外的类型。常见配置解析器也采用同样的做法。

语法错误的定位来自 js-yaml 的标记信息。解析失败时库会抛出异常,异常对象带有出错位置的行列号,库内部从零开始计数,页面展示前会把两个数字各加一。JSON 一侧在解析前先用轻量扫描器定位,直接给出首个出错字符的行列号,两边的提示口径一致。输出选项里,缩进决定每个层级的空格数。排序选项在写出前对每层对象的键名按字母排序。固定不折行让长字符串保持单行,复制回去后不会因为换行改变含义。

典型使用场景

  1. 配置文件改格式

    接手的项目配置是 JSON,团队新规范要求 YAML。把文件粘进来一键转换,字段层级原样保留,按 2 空格缩进输出后直接入库。转换后先通读一遍字段顺序,确认与原文件一致,再提交评审,不需要再手工调整格式。

  2. 接口文档造示例

    写接口文档需要一段格式规整的 YAML 示例。可以先用 JSON 把数据表达清楚,再转成 YAML 排版,勾选键名排序后示例结构稳定。后续字段增减时重新转一次,diff 干净,读者也容易对照请求字段理解结构。

  3. 排查 YAML 报错

    部署工具提示 YAML 语法错误却看不懂具体位置时,把可疑片段粘进来转换一次。报错带行号列号,Tab 缩进、漏空格、少冒号这类常见问题通常一下就能定位。修好后可以直接转成 JSON 验证数据结构是否符合预期。

使用技巧

  • 缩进先与目标项目对齐:Kubernetes 清单一般用 2 空格,部分团队规范要求 4 空格,转换前选好省得再调。
  • 报错先看行号列号,问题常出在上一行行尾,比如少了冒号后的空格。YAML 不允许用 Tab 字符缩进。
  • 两份配置做对比前先勾选按键名排序,字段顺序统一后,真正的差异一眼就能看出来。

注意事项

  • Tab 不能当缩进

    YAML 规范禁止用 Tab 字符缩进,只允许空格。从聊天窗口、网页或 PDF 复制配置时容易带入 Tab,编辑器里肉眼看不出差别。报错时先看出错行的行首,把 Tab 全部换成空格,再重新转换一次即可通过。

  • 锚点会展开成完整数据

    YAML 的锚点与引用属于语法层的复用写法,转成 JSON 时会展开成完整内容。文件较大时输出明显变长是正常现象,数据本身没有变多,也不是转换出了错。若想保留锚点结构,应把展开前的原文件交给程序处理。

  • 多文档流只认第一个

    一份文件里用三个横线分隔多个 YAML 文档时,工具按单个文档解析并会报错,这是解析库对多文档流的限制。先按分隔符把文件拆开,逐段粘贴转换,每段各自得到一份结果,最后再按顺序合并输出。

相关工具