YAML 转 JSON
粘贴 YAML 或选择 UTF-8 文件,在浏览器中将支持的数据转换为 JSON。在其他地方使用之前,请检查结果及转换限制。
三步转换 YAML
- 粘贴一个文档,或打开不超过 2 MiB 的 UTF-8 YAML 文件。转换器使用有文档说明的、基于 YAML 1.2 Core 的数据配置,而非特定应用的配置规则。
- 选择两个空格、四个空格或紧凑格式,然后选择“转换为 JSON”。在原始输入中修正报告的语法、不支持的类型、键、别名或限制错误。
- 查看完整结果的状态,然后复制 JSON 或下载 converted.json。可见预览可能被截断;复制和下载当前结果仍包含完整输出。
值如何转换为 JSON
在所选 Core 配置下,true 是布尔值,而 yes、on 和 2026-11-08 这样的普通日期是字符串。引号字符串和块字符串保留解析后的内容,包括 YAML 折叠和末尾换行处理规则。
整数、小数和指数形式的数字标记输出时不会经过 binary64 舍入。YAML 特有的加号、前导零和进制前缀会规范化为有效的 JSON 数字。其他 JSON 读取程序仍可能舍入大数字或高精度数字文本。
普通别名在严格限制内展开为 JSON 副本。共享身份会丢失,循环和向前引用的别名会被拒绝;未加引号、类似合并的 << 键不会被视为继承。若它是字面数据,请加引号或显式标记为字符串。
JSON 属性键必须是字符串。非字符串键或解码后重复的键会被拒绝,不会被强制转换或覆盖。注释、锚点、指令、YAML 样式和格式无法作为 JSON 元数据保留。
值得检查的示例
输入 enabled: true、mode: on 和 id: 9007199254740993 会变成一个 JSON 对象,包含布尔值、字符串和该精确整数标记。大标识符不会被悄悄舍入或加引号。
数值 012、0o12 和 0x10 分别变为 12、10 和 16。小数 1.0000000000000001 保留其精确数字文本,1e-400 不会被替换为零。
带锚点的映射可以被多次引用,并变成重复的 JSON 数据。自引用别名没有有限的 JSON 树等价形式,因此会被拒绝,不会输出部分结果。
重要的兼容性限制
每次只转换一个文档。YAML 1.1、自定义或非 Core 标签、不支持的显式标签形式、合并行为、非字符串键、重复键以及循环或无法解析的别名都会被拒绝。这不是对部署、模板、模式或业务规则的验证。
空输入或仅含注释的输入不完整。以 --- 开始的显式空文档和显式 null 值的含义都是 null。NaN 和无穷大字面量不能作为 JSON 数字;即使常见浮点读取程序无法表示,有限的指数值也会以文本形式保留。
输入限制为 2 MiB,输出限制为 8 MiB,处理时间限制为 10 秒。对象、深度、标量、数字标记和展开的别名也有限制。取消、超时或任何检查失败都不会留下可下载的部分结果。
输出为不带 BOM 的 UTF-8,并以一个 LF 结束。它按照上述规则保留支持的数据,但不保留 YAML 注释、图的身份、原始字节、表现形式,也不保证语义上往返还原源文档。JSON 使用方可能重新排序属性或舍入数字。
本地转换,不保存历史记录
工具在本地 worker 中处理 YAML,不上传或保存文档。只有在请求时才会复制或下载。此隐私说明不保证所有浏览器扩展、网站服务或您保留的副本的安全性。
