YAML 转 JSON 工具

粘贴 YAML,即可得到格式化的 JSON,可直接用于 API、JavaScript 代码或 JSON Schema 校验。

JSON

将 YAML 配置文件转换为 JSON

YAML 写起来很方便,但很多工具只接受 JSON:REST API、JavaScript 代码、JSON Schema 校验器和 jq 都需要 JSON。本工具解析你的 YAML,并以两个空格缩进的 JSON 输出。锚点和别名会展开为完整副本,注释会被删除,未加引号的值按照 YAML 的定义确定类型:数字成为数字,true 和 false 成为布尔值,~ 和 null 成为 null,日期成为 ISO 8601 字符串。如果 YAML 存在缩进或语法错误,错误信息会指出对应的行和列。

使用方法

  1. 粘贴你的 YAML,例如 docker-compose.yml 或 GitHub Actions 工作流。
  2. 在输出编辑器中查看格式化后的 JSON,或根据错误信息修正报告的那一行。
  3. 复制 JSON,或点击“交换”将其转回 YAML。

常见问题

YAML 的锚点和别名会怎样处理?
它们会被解析。每个别名(*name)都会被替换为所引用锚点值的完整副本,因为 JSON 无法引用文档中的其他部分。
为什么我的值 yes 仍然是字符串?
解析器遵循 YAML 1.2 规范,其中只有 true 和 false 是布尔值。yes、no、on 和 off 会保留为字符串;如果需要布尔值,请写成 true 或 false。
可以转换用 --- 分隔的多文档文件吗?
每次只能转换一个文档。请分别粘贴每个文档,或先将它们合并为一个 YAML 列表。

示例:YAML 转 JSON

YAML 输入

name: deploy
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test

JSON 输出

{
  "name": "deploy",
  "on": {
    "push": {
      "branches": [
        "main"
      ]
    }
  },
  "jobs": {
    "build": {
      "runs-on": "ubuntu-latest",
      "steps": [
        {
          "uses": "actions/checkout@v4"
        },
        {
          "run": "npm test"
        }
      ]
    }
  }
}

其他转换