tigtools

YAML 转 JSON 转换器

粘贴 YAML(Kubernetes 清单、CI 文件、OpenAPI 规范或配置),立即获得格式化后的 JSON。不会上传任何内容。

在浏览器中运行 无需注册

缩进

改为 JSON 转 YAML

使用方法

  1. 将 YAML 粘贴到输入框中,或尝试示例。
  2. 选择 2 或 4 个空格的缩进。
  3. 复制 JSON,或将其下载为 .json 文件。

工作原理

YAML 使用开源 yaml 库按 YAML 1.2 核心模式解析,这也是现代工具所期望的行为:yes、no、on 和 off 保持为字符串,只有 true 和 false 才是布尔值。锚点(&name)和别名(*name)会被展开,<< 合并键也会被应用;别名展开次数有限,因此故意膨胀的文档会被拒绝,而不会让页面卡死。

含有多个由 --- 分隔的文档的文件会转换为 JSON 数组,每个文档对应一个元素。注释、锚点和标签没有 JSON 等价物,会被丢弃;键会保持原有顺序。时间戳保持为字符串。超过约 15 位的整数会损失精度,这与在 JavaScript 中处理任何 JSON 时一样。

如果 YAML 无效,会显示第一个错误及其行号和列号,例如用制表符缩进或缺少右括号。如需反向转换,请使用 JSON to YAML 或双向 JSON ⇄ YAML 转换器。

示例

带锚点的 CI 文件

一个通过 <<: *defaults 复用默认值块的作业列表会转换为 JSON,其中默认值会复制到每个作业中,这样你就可以确切看到每个作业获得的内容。

多文档 Kubernetes 文件

含有由 --- 分隔的 Deployment 和 Service 的文件会转换为包含两个对象的 JSON 数组,可直接用于 kubectl 或 jq。

常见问题

为什么 yes 会保持为字符串?

这里以及大多数当前工具使用的 YAML 1.2 仅将 true 和 false 视为布尔值。较旧的 YAML 1.1 解析器会将 yes、no、on 和 off 转换为布尔值,由此引发了许多错误。

注释会如何处理?

JSON 没有注释,因此注释会被丢弃。数据本身不会改变。

有大小限制吗?

仅受浏览器内存限制。较大的文件会在你输入时短暂停顿后进行转换,因此页面能保持响应。

隐私

转换完全在你的浏览器中运行。你的 YAML 和 JSON 不会被上传或存储。