跳到主要内容

免费 YAML 与 JSON 互转工具

双向转换 YAML 和 JSON。粘贴任意格式,即刻获得转换结果——无需服务器上传。

加载后可离线使用
JSON 输出
输出将显示在此处…

常见用途

  • 为Kubernetes清单将YAML转换为JSON将Kubernetes YAML转换为JSON(或反之)以进行工具、验证脚本或直接通过API应用。
  • Docker Compose YAML / JSON转换将docker-compose.yml转换为JSON进行检查,或在以编程方式进行编辑后转换回YAML。
  • CI/CD管道配置转换在YAML和JSON格式之间转换GitHub Actions、GitLab CI、CircleCI和其他管道配置。
  • 应用配置文件转换在YAML和JSON之间转换应用配置文件,在切换框架或跨工具共享配置时很有用。
  • OpenAPI / Swagger规格转换在YAML和JSON之间转换OpenAPI 3.x或Swagger 2.0 API规格。两种格式都有效且可互换。

工作原理

双向转换——YAML 转 JSON 和 JSON 转 YAML——都完全在你的浏览器中使用内置于页面的手写解析器和生成器运行,没有第三方 YAML 库,也不涉及服务器。逻辑位于单个 TypeScript 模块(lib/yamljson.ts)中,处理映射、序列、标量、引号字符串和行内注释去除。

  1. 1
    逐行预处理输入
    对于 YAML 输入,解析器将文本拆分为行,去除行内注释(跟踪引号状态以免去除字符串中的 #),测量缩进深度并丢弃空行——在解析开始之前构建一个结构化的记号列表。
  2. 2
    递归下降解析器构建数据树
    解析器遍历记号列表,用缩进级别确定结构。它识别序列项(- value)、映射键(key: value)和嵌套块。标量经过类型转换步骤,处理 null、布尔值、整数(拒绝 007 这类带前导零的值,以免悄悄损坏数据)和浮点数——还有一个可选模式,将 yes、no、on 和 off 等 YAML 1.1 裸词保留为字符串,而不是转换为布尔值。
  3. 3
    不支持的 YAML 特性会被标出,而不是悄悄丢弃
    输出之前,工具会扫描锚点(&name)、别名(*name)、合并键(<<:)、块标量(| 和 >)、多文档标记(---)以及重复的映射键。任何一项都会触发醒目的警告,而不是生成细微错误的 JSON。
  4. 4
    序列化 JSON 或生成 YAML,然后提供输出
    对于 YAML→JSON,解析后的值按你选择的缩进(2 个空格、4 个空格、制表符或压缩)传给 JSON.stringify。对于 JSON→YAML,自定义生成器遍历解析后的 JavaScript 值并生成缩进的 YAML,只在必要时给字符串标量加引号(例如包含 :、# 或看起来像保留字的值)。输出在你输入时即时显示,可复制或下载。

相关工具

常见问题