我遇到了新语法的问题。 解析以下yaml文件时:
S1:
data_type: spr
guid: 1
S2:
data_type: spr
guid: 2
使用以下代码:
#include "yaml.h"
int main () {
YAML::Node testNode = YAML::LoadFile("data/Sprites.yaml");
std::cout<<"type "<<testNode["S1"]["data_type"].as<std::string>()<<std::endl;
std::cout<<"type "<<testNode[1]["data_type"].as<std::string>()<<std::endl;
return 0;
}
第一行工作并输出“type spr”,而第二行不工作,抛出YAML :: TypedBadConversion&lt; std :: string&gt;。
他们两个都不应该有相同的输出吗?或者编号索引是否仅适用于序列而不适用于地图?我做错了什么?
答案 0 :(得分:0)
在YAML中,地图不是有序的,所以要求地图的“第一个条目”是没有意义的。相反,testNode[1]
指的是带有键1
的地图条目,该密钥不存在。