[C.C++] 【C++】使用 yaml-cpp 库操作 YAML

392 0
Honkers 2026-4-3 22:37:39 来自手机 | 显示全部楼层 |阅读模式

YAML是专门用来写配置文件的语言,非常简洁和强大,比 JSON 和 xml 格式要方便很多。
YAML语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写,它实质上是一种通用的数据串行化格式

YAML 使用缩进和特定的符号来表示数据结构。

在本文中,我们将详细介绍如何在 C++ 中使用 yaml-cpp 库来解析和生成 YAML 格式的数据。

1. YAML 入门教程

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

数据类型

YAML 支持以下几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

YAML 对象

对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。

也可以使用 key:{key1: value1, key2: value2, ...}

还可以使用缩进表示层级关系;

  1. key:
  2. child-key: value
  3. child-key2: value2
复制代码

较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value:

  1. ?
  2. - complexkey1
  3. - complexkey2
  4. :
  5. - complexvalue1
  6. - complexvalue2
复制代码

意思即对象的属性是一个数组 [complexkey1,complexkey2],对应的值也是一个数组 [complexvalue1,complexvalue2]

YAML 数组

以 - 开头的行表示构成一个数组:

  1. - A
  2. - B
  3. - C
复制代码

YAML 支持多维数组,可以使用行内表示:

  1. key: [value1, value2, ...]
复制代码

数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。

  1. -
  2. -
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行