4.6 配置文件格式 🟢 转载

来源:https://github.com/datawhalechina/vibe-vibe

阅读完本节后,你将会收获:

  • 理解 JSON 和 YAML 的语法和用途
  • 掌握两种格式的读写方法
  • 了解它们在开发中的应用场景
  • 理解结构化数据对 AI 的价值

JSON 和 YAML 是数字时代的"普通话"——不同系统之间交流的通用语言。

JSON 格式

JSON(JavaScript Object Notation) 是最常用的数据交换格式。

语法规则

{
  "name": "张三",
  "age": 25,
  "email": "zhang@example.com",
  "address": {
    "city": "北京",
    "district": "朝阳"
  },
  "hobbies": ["阅读", "游泳", "编程"]
}

规则说明

  • 使用大括号 {} 表示对象
  • 使用方括号 [] 表示数组
  • 数据以"键: 值"的方式组织
  • 键必须用双引号包裹
  • 键值对之间用逗号分隔

数据类型

类型 示例 说明
字符串 "hello" 用双引号包裹
数字 1233.14 整数或浮点数
布尔值 truefalse 真/假
数组 [1, 2, 3] 有序的数据列表
对象 {"key": "value"} 键值对集合
null null 空值

JSON 的优势

优势 说明
通用性 所有编程语言都支持
可读性 人类可以轻松阅读
紧凑性 格式简洁,不浪费空间
Web 标准 HTTP API 的标准格式
💡 JSON 是数字时代的普通话

无论你用 Python 写后端,用 JavaScript 写前端,还是让 AI 来写代码,大家都用 JSON 传递数据。如果不用 JSON,每种语言可能都有自己的"方言"格式,就像古代各地有自己的语言一样,交流起来很困难。

CSV:平面文件格式

在讨论结构化数据时,CSV(Comma-Separated Values) 是最简单的格式之一。它用纯文本存储表格数据,每行是一条记录,字段用逗号分隔。

CSV 示例

name,email,age
张三,zhang@example.com,25
李四,li@example.com,30

CSV 的特点

  • 简单:任何文本编辑器都能打开
  • 兼容性好:Excel、Google Sheets 都能直接导入
  • 体积小:没有多余的格式标记

CSV 的局限

  • 只能表示二维表格(行和列)
  • 不支持嵌套结构
  • 没有数据类型(所有内容都是字符串)
  • 处理复杂关系时力不从心

CSV vs JSON/YAML

特性 CSV JSON/YAML
结构 二维表格 任意嵌套
数据类型 字符串、数字、布尔等
关系表达
适用场景 简单数据导出、表格交换 配置文件、API 数据、复杂结构

当你需要从电子表格导出数据,或者与使用 Excel 的同事交换简单数据时,CSV 很合适。但对于 Web 应用开发,JSON 和 YAML 是更好的选择,因为它们能表达更复杂的数据结构。

实际应用示例

JSON:用户数据

{
  "id": "user_123",
  "name": "张三",
  "email": "zhang@example.com",
  "avatar": "https://example.com/avatar.jpg",
  "location": {
    "country": "中国",
    "province": "北京",
    "city": "北京"
  },
  "birthday": "1990-01-15",
  "phone": "+86 138 0000 0000"
}

YAML:应用配置

# 应用配置
app:
  name: "我的博客"
  version: "1.0.0"
  port: 3000

# 数据库配置
database:
  host: "localhost"
  port: 5432
  name: "blog_db"
  user: "admin"
  password: "${DB_PASSWORD}"  # 引用环境变量

# 功能开关
features:
  enable_comments: true
  enable_analytics: false

JSON:API 响应

{
  "success": true,
  "data": {
    "posts": [
      {
        "id": "1",
        "title": "第一篇文章",
        "author": "张三"
      },
      {
        "id": "2",
        "title": "第二篇文章",
        "author": "李四"
      }
    ],
    "total": 2,
    "page": 1
  }
}

YAML:CI/CD 配置

# GitHub Actions 配置
name: 部署
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: 安装依赖
        run: pnpm install
      - name: 构建
        run: pnpm build
      - name: 部署
        run: pnpm deploy

常见问题

Q1: JSON 中的注释怎么办?

JSON 标准不支持注释。需要注释可以用 JSONC(JSON with Comments)或改用 YAML。

Q2: YAML 缩进用空格还是 Tab?

只能用空格,不能用 Tab。通常用 2 个空格作为一级缩进。

Q3: 如何选择 JSON 还是 YAML?

  • 数据传输、API 响应:用 JSON
  • 配置文件:优先 YAML
  • 需要注释:用 YAML
  • Web API:用 JSON

Q4: 格式写错了怎么办?

大多数编辑器都有语法检查。让 AI 帮忙修复也是好办法,它会指出具体错误并给出正确格式。

相关内容

最后编辑:Alex 2026-03-05 11:39:51