正在加载,请稍候…

YAML 转 JSON 转换器:何时以及如何转换配置文件

使用我们的免费在线工具将 YAML 转换为 JSON。了解何时使用每种格式以及常见的转换陷阱。

YAML 转 JSON 转换器:何时以及如何转换配置文件

什么是 YAML 以及为何要转换为 JSON?

YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化格式,广泛用于配置文件。JSON(JavaScript Object Notation)是 Web API 和应用程序的通用数据交换格式。虽然两者都表示结构化数据,但它们各有优势,用于不同的场景。

将 YAML 转换为 JSON 是常见需求,当:

  • 在 JavaScript/Node.js 应用程序中处理配置文件
  • 向期望 JSON 的 REST API 发送数据
  • 将基于 YAML 的工具与基于 JSON 的系统集成
  • 转换 Kubernetes/Docker YAML 配置以供 API 使用
  • 通过在 JSON 查看器中查看配置来进行调试

YAML 转 JSON 转换器:何时以及如何转换配置文件 插图

YAML 语法概述

YAML 使用缩进和特殊字符而不是花括号和方括号:

# 一个 YAML 配置示例
server:
  host: localhost
  port: 8080
  ssl: true

database:
  url: postgresql://localhost:5432/mydb
  pool_size: 10

features:
  - authentication
  - caching
  - logging

YAML 的关键特性:

  • 缩进定义结构(2 或 4 个空格,从不使用制表符)
  • 冒号分隔键和值
  • 破折号表示列表项
  • 井号开始注释
  • 引号对于大多数字符串是可选的

YAML 数据类型

YAML 自动推断类型:

  • true/false → 布尔型
  • 42 → 整数
  • 3.14 → 浮点数
  • "hello" → 字符串
  • null~ → 空值
  • 2024-01-15 这样的日期 → 日期(在某些解析器中)

这种自动检测可能会导致意外——像 NO 这样的挪威市镇代码在某些 YAML 解析器中可能被解释为布尔值 false

等效的 JSON

上面的 YAML 示例转换为:

{
  "server": {
    "host": "localhost",
    "port": 8080,
    "ssl": true
  },
  "database": {
    "url": "postgresql://localhost:5432/mydb",
    "pool_size": 10
  },
  "features": [
    "authentication",
    "caching",
    "logging"
  ]
}

YAML 转 JSON 转换器:何时以及如何转换配置文件 插图

YAML 和 JSON 的主要区别

特性 YAML JSON
注释 支持(# 不支持
可读性
冗长性 较高
多行字符串 自然 需要 \n 转义
尾随逗号 不适用 不允许
数据类型 丰富(日期等) 有限(字符串、数字、布尔、空、数组、对象)
解析复杂度
安全问题 较高(YAML 炸弹) 较低

YAML 锚点和别名

YAML 支持 JSON 中没有的强大特性:

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  host: prod.example.com

staging:
  <<: *defaults
  host: staging.example.com

转换为 JSON 时,锚点/别名会被解析——引用的值会被内联。

常见的 YAML 转 JSON 用例

YAML 转 JSON 转换器:何时以及如何转换配置文件 插图

Kubernetes 配置

Kubernetes 清单以 YAML 编写,但 API 服务器处理 JSON:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3

CI/CD 管道文件

GitHub Actions、GitLab CI 和 CircleCI 使用 YAML,但许多工具将其输出处理为 JSON。

Docker Compose

Docker Compose 文件是 YAML 格式。检查 compose 配置的工具通常使用 JSON 表示。

使用 YAML 转 JSON 转换器

我们的转换器:

  1. 粘贴或输入 YAML 到输入面板
  2. 即时 JSON 输出——在您输入时实时转换
  3. 语法验证——在转换前高亮 YAML 错误
  4. 格式化输出——带有适当缩进的漂亮打印 JSON
  5. 复制 JSON——一键复制到剪贴板
  6. 下载——将转换后的 JSON 保存为文件

该工具处理所有 YAML 特性,包括锚点、多行字符串、复杂嵌套以及类型推断相关的边缘情况。