如何从 yaml 文件中获取特定的类别名称?
How to get specific category names from yaml file?
我正在使用 C++ 并有一个 yaml 文件,如下所示:
Food:
Apple:
- Type: grannysmith
BellPepper:
- Type: Red
- Type: Green
Sandwich:
- Type: Ham
我需要对其进行解析,以便获得仅列出食物名称的字符串向量:
output: "Apple", "BellPepper","Sandwich"
到目前为止,我的代码如下所示:
YAML::Node node = YAML::LoadFile(configYamlPath)["Food"];
std::vector<std::string> items;
for (YAML::Node n : node){
items.push_back(n.as<std::string>());
}
我将如何获得那些特定的密钥?
这里,node
是一个YAML映射。当您遍历 YAML 映射时,您会返回 std::pair<YAML::Node, YAML::Node>
,它们是键值对。所以,你想要:
for (auto n : node) {
YAML::Node &key = p.first;
// Do something with the key here
}
(实际上,取消引用迭代器返回的值是从 YAML::Node
和 std::pair<YAML::Node, YAML::Node>
继承的类型,这就是为什么您当前的代码不会编译失败。但是是一个实现细节。)
我正在使用 C++ 并有一个 yaml 文件,如下所示:
Food:
Apple:
- Type: grannysmith
BellPepper:
- Type: Red
- Type: Green
Sandwich:
- Type: Ham
我需要对其进行解析,以便获得仅列出食物名称的字符串向量:
output: "Apple", "BellPepper","Sandwich"
到目前为止,我的代码如下所示:
YAML::Node node = YAML::LoadFile(configYamlPath)["Food"];
std::vector<std::string> items;
for (YAML::Node n : node){
items.push_back(n.as<std::string>());
}
我将如何获得那些特定的密钥?
这里,node
是一个YAML映射。当您遍历 YAML 映射时,您会返回 std::pair<YAML::Node, YAML::Node>
,它们是键值对。所以,你想要:
for (auto n : node) {
YAML::Node &key = p.first;
// Do something with the key here
}
(实际上,取消引用迭代器返回的值是从 YAML::Node
和 std::pair<YAML::Node, YAML::Node>
继承的类型,这就是为什么您当前的代码不会编译失败。但是是一个实现细节。)