鑒于這個簡單的 YAML 示例:
{CR: {ab: 12}}
我想檢索CR
. 也許我不知道識別“根密鑰”的正確詞,因此我沒有發現任何有用的東西。我用QtYaml是基于libyaml,在Ubuntu 20.04。
QString yaml = "{CR: {ab: 12}}";
YAML::Node root = YAML::Load(yaml.toStdString().c_str());
QString key;
YAML::convert<QString>().decode(root, key);
qDebug() << key;
它回傳一個空字串。我必須做什么才能擁有key = "CR"
?
uj5u.com熱心網友回復:
這不是 libyaml;libyaml 沒有帶有命名空間的 C 介面。從 API 呼叫的外觀來看,您正在使用yaml-cpp.
YAML 檔案有一個根節點,在您的情況下,這是一個mapping。映射是一個集合節點,因此不能正確轉換為字串。您想要的是提取該映射的第一個鍵:
root.begin()->first.as<QString>();
begin()
在根映射鍵值對上回傳一個迭代器。->
取消對其第一項的參考。first
檢索密鑰。as<QString>()
將密鑰轉換為QString
并回傳它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353428.html
上一篇:ARRAYFORMULA()生成的值的總和不正確(Google表格)
下一篇:設定了“WA_DeleteOnClose”屬性的堆疊QDialog上出現“doublefreeorcorruption(out)”錯誤