开发者工具 / 05

YAML转JSON转换器

将YAML配置转换为JSON;如果文档无法解析,会显示易读的提示。

YAML转JSON转换器: TOEA使用安全模式下的真正YAML解析器解析文档,因此会展开锚点和别名,并且无法从文件中构造任意类型。 完全在浏览器中本地运行,文件不会上传到服务器。

使用次数
在浏览器中
费用
免费·无需注册
可用性
可直接使用
YAML → JSON工作台本地处理

完全在浏览器中运行

↥
在下方粘贴YAML,或选择一个文件

最大5 MB·不会上传

哪些值会变成布尔值和数字

此转换器按照YAML严格的JSON规则读取普通值。只有小写的true、false和null会变成布尔值或null;yes、no、on、True、Null和~会保留为字符串,0755、0x1F以及2024-01-05等日期也一样。未加引号的小数会变成数字,这可能影响版本字段:python: 3.10会变成3.1。凡是必须保留为文本的内容都请加引号,例如python: "3.10"。

合并键和多文档文件

Docker Compose和GitLab CI文件经常使用<<: *defaults重复利用一个块。合并键会被应用:共享键会复制到该块中,而块本身写入的键优先级更高,因此<<: *defaults后接retries: 5时,会保留除retries之外的所有默认值。像<<: [*base, *extra]这样的列表可以合并多个块,前面的块优先级更高。锚点和别名会完整展开,因此当一个大块被多次重复使用时,JSON可能会比YAML大很多。

如果文件包含多个由---分隔的文档(Kubernetes清单经常如此),工具会拒绝处理,并提示只能包含单个文档。请分别转换每个文档。

使用方法

  1. 粘贴YAML或选择文件。
  2. 选择缩进宽度。
  3. 复制或下载JSON。

隐私与限制

文本会在浏览器中转换,绝不会上传;当文件是配置文件或你不愿交给陌生人的导出文件时,这一点很重要。工具只使用安全模式,因此文档不会仅因被解析就实例化类型。

相关工具

常见问题

为什么YAML需要解析器?

YAML规范内容庞杂,包括块标量、锚点、隐式类型和多个文档。仅靠模式匹配实现的子集可能会误读真实文件,而不是在遇到问题时直接报错,这反而更糟。

锚点和别名会怎样处理?

它们会被展开,因为JSON没有表达引用的方式。别名所指向的值会在每个引用位置完整显示。

为什么我的YAML解析失败了?

通常是缩进问题:YAML对空白敏感,在应使用空格的位置使用制表符是无效的。错误信息会指出对应的行。

注释会保留吗?

不会。JSON没有注释语法,因此注释会被删除。

免费工具·使用在浏览器中次·无需账户