JSON是一种轻量级数据交换格式,采用键值对和数组结构,支持6种基础数据类型。相比XML,JSON具有简洁、解析快、体积小等优势,成为现代API交互的标准。在AI编程中,JSON常用于配置文件、结构化数据输出和API交互。YAML作为JSON的补充,更注重可读性,支持注释和多行文本,适合人工编辑的配置文件。两者各有侧重:JSON适合机器间数据交换,YAML适合人工配置管理。开发时可借助VSCode工具提升处理效率。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式

如果说 Markdown 是给人看的“优美散文”,那么 JSON 就是给机器读的“精练简报”。虽然它起源于 JavaScript,但它现在已经是所有主流编程语言(Python, C++, Go, Java 等)之间传递数据的事实标准


1. JSON 的核心结构

JSON 的语法非常直观,主要由两种结构组成:

  1. 对象 (Object): 用花括号 {} 包围,表示一组无序的“键值对(Key-Value)”。

  2. 数组 (Array): 用方括号 [] 包围,表示一组有序的值。


2. 语法规则与示例

一份标准的 JSON 数据看起来是这样的:

JSON

{
  "project": "车载 TBox 协议分析",
  "version": 2.0,
  "is_active": true,
  "tags": ["5G", "SOME/IP", "DDS"],
  "author": {
    "name": "5Gdemo",
    "role": "AI Collaborator"
  },
  "null_value": null
}

必须遵守的“硬约束”:

  • 双引号: 所有的“键(Key)”和“字符串值(String)”必须使用双引号,不能用单引号。

  • 末尾无逗号: 最后一个键值对的后面不能有逗号。

  • 嵌套: 对象和数组可以无限嵌套。


3. 支持的数据类型

JSON 仅支持以下 6 种基础数据类型,这保证了它的跨平台通用性:

类型 说明 示例
String 字符串,必须用双引号。 "Hello World"
Number 数字,支持整数、浮点数。 1233.1415
Boolean 布尔值。 truefalse
Array 数组/列表。 [1, 2, 3]
Object 对象/字典。 {"key": "value"}
Null 空值。 null


4. 为什么 JSON 击败了 XML?

在 JSON 出现之前,XML 是主流,但现在几乎所有现代 API(如天气预报接口、高德地图接口)都首选 JSON。

特性 JSON XML
可读性 简洁、清晰。 冗长(充满 <tags>)。
解析速度 极快(原生支持,开销小)。 较慢(需要复杂的解析引擎)。
数据大小 体积小,节省带宽。 体积大,冗余字符多。
代码转换 直接映射为对象的字典/列表。 需要繁琐的文档对象模型转换。


5. 在 AI Coding 中的实战场景

对于你正在进行的 AI 辅助编程,JSON 的作用至关重要:

  • 配置文件: VS Code 的所有配置(settings.json)和项目定义(package.json)都是 JSON。

  • 结构化输出: 当你要求 AI:“请以 JSON 格式输出车载 5G 芯片的参数对比”时,AI 会给出一段可以直接被 Python 脚本解析的数据,而不是一段乱糟糟的文字。

  • API 交互: 如果你编写一个脚本去调用大模型(LLM)的接口,你发送的请求和收到的回答,本质上都是 JSON 包。


💡 实用小工具

如果你在 VS Code 中处理复杂的 JSON,建议:

  1. Shift + Alt + F自动格式化,让乱成一团的代码瞬间整齐。

  2. 使用插件 "JSON Crack":可以将复杂的 JSON 转换成可视化的逻辑图。

如果说 JSON 是给机器读的“精练简报”,那么 YAML(YAML Ain't Markup Language)就是专门为人类设计的“清新情书”。

在 2026 年的开发环境下,凡是需要人手去改的配置文件(比如 Docker、Kubernetes、GitHub Actions、或者你关注的 OpenClaw AI Agent 配置),几乎清一色都在用 YAML。


1. 为什么大家都爱 YAML?

  • 极度可读: 它去掉了 JSON 那些密密麻麻的引号、大括号和逗号,改用缩进来表示层级。

  • 支持注释: 这是它对比 JSON 的最大杀手锏。你可以写下“为什么要改这个参数”,而不是让后来的同事猜谜。

  • 支持多行文本: 处理一段很长的 Prompt 或说明文字时,YAML 的写法比 JSON 优雅得多。

  • 原生支持复杂类型: 比如支持“锚点”,可以让你在文档的一处定义变量,在另一处直接引用,避免重复。


2. YAML 的核心语法规则

YAML 看起来很像 Python,它的灵魂在于空格

A. 基础结构

YAML

# 这是一个注释
project: "车载 5G TBox"  # 键值对,冒号后必须有空格
version: 2.0
is_active: true

# 列表(数组)用短横线表示
protocols:
  - SOME/IP
  - DDS
  - CAN-FD

B. 对象嵌套(靠缩进实现)

YAML

hardware:
  chipset: "Balong 5000"
  mcu_less: true
  peripherals:
    - antenna: "MIMO 4x4"
      gain: 5.5

C. 必须遵守的“军规”:

  1. 大小写敏感: Versionversion 是两回事。

  2. 缩进禁用 Tab: 必须使用空格(通常是 2 个或 4 个)。如果你在 VS Code 里误用了 Tab,YAML 解析器会报错。

  3. 冒号后必须有空格: key: value 是对的,key:value 是错的。


3. YAML vs. JSON 深度对比

特性 YAML JSON
可读性 极高,像散文 一般,像代码
注释 支持 (#) 不支持
层级表示 缩进 大括号 {}
主要用途 配置文件、CI/CD 脚本 数据交换、API 接口
解析速度 较慢 极快
容错性 对空格敏感,容易写错缩进 对符号敏感,容易漏掉逗号

4. 在 AI Coding 中的实战场景

对于你正在研究的 AI 领域,YAML 几乎是“空气”:

  • AI Agent 配置: 像 OpenClaw 这种平台,通常使用 YAML 来定义 Agent 的角色、工具集和记忆存储路径。

  • CI/CD 流水线: 如果你想通过 GitHub 自动测试你的 C++ 代码,你需要写 .github/workflows/main.yml

  • Docker 部署: docker-compose.yml 是定义多容器协作的标准。

  • Prompt 模板库: 很多资深开发者喜欢把长篇大论的 Prompt 存在 .yaml 文件里,利用 YAML 的 >| 符号保持文本换行。


5. VS Code 开发建议

由于 YAML 对缩进有着病态的要求,建议在 VS Code 中:

  1. 安装插件:"YAML" (Red Hat 出品)。它能提供语法校验、自动补全。

  2. 开启显示空白字符:这能帮你一眼看出哪里混进了 Tab 键。


💡 总结

YAML 是“人机对话”的终点,JSON 是“机机对话”的起点。 当你需要手动配置一个复杂系统(比如 Zonal 控制器的远程 I/O 映射)时,选 YAML;当你的脚本需要把数据快速发给另一个脚本时,选 JSON。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐