温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

YAML比起JSON好在哪

发布时间:2026-10-02 02:00:46 来源:亿速云 阅读:85 作者:小樊 栏目:系统运维

YAML 和 JSON 都是常见的数据序列化格式,但设计目标和适用场景不同。相比 JSON,YAML 主要在可读性、表达能力和书写体验上更有优势。下面从几个维度对比说明 YAML 比 JSON“好在哪”(当然也有代价)。


1. 可读性更强(人类更友好)

JSON 示例:

{
  "name": "Tom",
  "age": 28,
  "skills": ["Go", "Python"],
  "address": {
    "city": "Shanghai",
    "zip": "200000"
  }
}

YAML 示例:

name: Tom
age: 28
skills:
  - Go
  - Python
address:
  city: Shanghai
  zip: "200000"

✅ 没有大括号、引号、逗号
✅ 缩进即结构,更像自然语言
✅ 配置文件可读性明显更好


2. 支持注释(JSON 不支持)

YAML:

# 数据库配置
host: localhost
port: 5432

JSON:完全不支持注释(这是很多配置场景的痛点)

✅ YAML 适合写配置文件
❌ JSON 常被迫用 _comment 字段或文档说明


3. 表达力更丰富

YAML 支持:

  • 多行字符串(块标量)
  • 类型推断(自动识别数字、布尔、null)
  • 锚点 & 引用(避免重复)

多行字符串:

description: |
  这是一段
  多行文本

锚点复用:

defaults: &defaults
  timeout: 30
  retry: 3

service_a:
  <<: *defaults
  host: a.local

JSON 没有这些能力。


4. 更适合配置文件(而非通信协议)

典型使用场景对比:

场景 更适合
API 数据传输 JSON
配置文件(K8s / CI / Docker) YAML
日志 / 网络传输 JSON
人工编辑的文件 YAML

5. 书写更少的“噪音”

JSON 的标点成本:

  • {} [] "" , YAML:
  • 基本只靠缩进

对人来说,YAML 更容易写对、改对。


YAML 的“代价”(也要说清楚)

YAML 并不是全面优于 JSON:

❌ 解析更复杂(容易出 bug)
❌ 缩进敏感(写错很难排查)
❌ 隐式类型转换有坑(如 yes → true)
❌ 不适合高频网络传输


一句话总结

YAML 比 JSON 更适合“人写、人读”的配置文件;JSON 比 YAML 更适合“机器生成、机器解析”的数据交换。

如果你愿意,我也可以给你一个 “什么时候该用 YAML,什么时候该用 JSON” 的速查表。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手