YAML / JSON 配置转换

本地处理

YAML 与 JSON 双向转换,检查重复键、数据类型和数字精度。

单份转换 · 不自动保存输入

转换保留支持范围内的数据值,不保留注释、原缩进、引号写法和字段顺序。YAML 按 1.2 解析;编号、日期或高精度数字需要保持原样时,请用引号包成字符串。

输入 0 字节 / 256 KiB(UTF-8)

输入内容后点击「开始转换」。

从文件导入

文件仅在浏览器本地处理,不会上传

结果以纯文本展示,请核对后复制或下载。

转换前先确认

  • 支持对象、数组、字符串、布尔值、null 和可安全表示的数字。对象键必须是字符串。
  • 重复键、超大整数、精度变化、负零、NaN / Infinity 会报错,不自动舍弃或修正。
  • 首版不接受多文档、锚点、别名、合并键或显式标签;请先展开为普通数据。
  • 输入最多 256 KiB,输出最多 2 MiB;嵌套最多 50 层,节点最多 20,000 个。超时会终止,可修改后重试。

使用指南

工具介绍

把 YAML 配置交给只接受 JSON 的程序,或将 JSON 数据改成便于阅读的 YAML。本工具逐项检查数据类型和数字精度,支持单份粘贴或导入,并分别保留原文与转换结果。

转换在浏览器内完成,不上传配置,不自动保存正文,也不把配置写入网址或错误日志。关闭页面前请自行备份;本站页面仍可能加载统计或广告资源,本地处理不等于独立的保密环境。

使用步骤

  1. 选择 YAML → JSON 或 JSON → YAML,粘贴原文,或导入最大 256 KiB 的 UTF-8 文件。已有正文时,导入、示例和清空都需要确认。
  2. 点击「开始转换」。不支持的类型或语法会显示错误,能确定位置时提供行列和「定位错误」。原文不会自动修正。
  3. 核对结果中的编号、日期、布尔值和空值。预览最多显示前 20,000 个字符,复制与下载包含完整结果。
  4. 复制或下载 .json / .yaml 文件。修改原文或切换方向后旧结果失效,需要重新转换。

适用场景

  • 将单份 YAML 服务配置转换为 JSON,交给要求 JSON 输入的接口或脚本。
  • 将 JSON 对象整理为两空格缩进的 YAML,方便人工阅读、核对与后续编辑。
  • 在迁移配置前找出重复键、非字符串键、超大整数等容易引起静默变化的问题。

常见问题

YAML 版本和类型如何处理?
按 YAML 1.2 Core Schema 解析,只接受字符串键的对象、数组、字符串、布尔值、null 与可安全表示的数字。yes / no / on / off 和日期形文本按字符串处理;true / false 是布尔值。JSON 输入必须是标准语法,不接受注释或尾随逗号。根节点可以是数组或标量,不强制为对象。
为什么数字 00123 或超大整数需要加引号?
YAML 中未加引号的 00123 会按数字 123 读取,前导零不是数字数据的一部分;编号应写成 "00123"。超出 ±9,007,199,254,740,991 的整数,以及转换后十进制数值会改变的数字会被拒绝。负零、NaN、Infinity 也不支持。请用字符串保存精确编号或高精度金额;将其改成字符串会改变数据类型,应按目标系统要求决定。
会保留注释和字段顺序吗?
不会。这里只转换数据值,注释、原缩进、引号形式、数字写法与原字段顺序不保证保留。JSON 不支持注释,YAML 导出统一采用两空格缩进。字符串内部的换行仍属于数据值,必要时会用转义或 YAML 多行写法表达。
支持锚点、合并键、多文档和显式标签吗?
首版全部拒绝,包括锚点 &name、别名 *name、未加引号的合并键 <<、多个 --- 文档以及 !!str 等显式标签。这样避免别名展开、特殊对象或覆盖规则造成意外变化。普通字符串键 "<<" 可以转换。重复对象键和非字符串键同样报错,不覆盖已有字段。
有哪些容量限制?
输入最多 256 KiB UTF-8,输出最多 2 MiB,嵌套最多 50 层(根为第 0 层),最多 20,000 个节点,对象键也计数。转换超过 10 秒会终止,超限不会提供截断文件。文件导入允许 UTF-8 BOM,无效 UTF-8 会拒绝;不自动猜测其他编码。
切换方向会自动用结果作为输入吗?
不会,原文保留,旧结果失效。需要往返核对时,先复制或下载结果,再切换方向并粘贴该结果。取消只终止当前转换,失败后修改原文即可重试;输入与结果都不会自动保存。

核对内置示例

  • 加载示例后,service.port 应为数字 8080,enabled 为布尔值 true,note 为 null。
  • account 应保留字符串 "00123",release 应保留日期字符串;JSON 输出不包含 YAML 示例的注释。
  • 修改为 port: 8080 和第二个 port: 9090 时,应提示重复键;将 account 改为未加引号的 9007199254740993 时,应提示安全整数范围。

适合与不适合的配置

  • 适合一份普通数据配置的格式互转;不会执行配置、校验业务字段或连接目标服务。
  • Kubernetes 等多文档文件需逐份处理,含锚点、标签和合并键的配置需先展开;暂不支持 TOML、INI、XML、批量转换或 YAML 1.1。

结果与原稿

  • 下载结果使用 UTF-8;JSON 两空格缩进,YAML 两空格缩进,末尾保留一个换行。
  • 完整结果的复制与下载只在最近一次成功转换后可用;旧结果仅供对照,不可导出。
  • 错误提示不回显配置值。含敏感凭据的真实配置应在可信环境处理。

相关工具