无法使用 yaml-cpp 发出空值

  • 本文关键字:空值 yaml-cpp yaml-cpp
  • 更新时间 :
  • 英文 :


我想发出一个空值,但当我分配一个要发出的空字符串时,从技术上讲,输出不是空的。

代码段:

YAML::Emitter out;
std::string name;
out << YAML::Key << "name";
out << YAML::Value << name;

预期yaml输出:

name:

实际yaml输出:

name: ""

正如您所看到的,我定义了一个空字符串,我希望yaml输出实际上是空的。这是故意的行为吗?如果是的话,有办法解决这个问题吗?我的目标是让我的整个yaml输出是免费报价。

YAML

name:

对于密钥CCD_ 1没有字符串值;它实际上是一个空值。例如,请参阅此处的在线解析器;规范的YAML表示是:

!!map {
? !!str "name"
: !!null "null",
}

yaml-cpp试图确保您告诉它的("写这个空字符串"(是解析结果yaml的方式,因此它将空字符串写为""

如果你想写一个空值,那么要么不写值,要么写YAML::Null。后者(我相信(将产生

name: ~

这是null的规范形式。

最新更新