非常抱歉,我之前的回答中没有注意到您使用的是 nlohmann::json 库而不是 jsoncpp 库。nlohmann::json 不需要像 jsoncpp 那样进行转换操作。
以下是更新后的函数示例,适用于 nlohmann::json:
void jsonToYaml(const nlohmann::json& jsonData, YAML::Emitter& emitter)
{
if (jsonData.is_object())
{
emitter << YAML::BeginMap;
for (auto it = jsonData.begin(); it != jsonData.end(); ++it)
{
emitter << YAML::Key << it.key();
if(it.value().is_object() || it.value().is_array())
jsonToYaml(it.value(), emitter);
else
emitter << YAML::Value << it.value();
}
emitter << YAML::EndMap;
}
else if (jsonData.is_array())
{
emitter << YAML::BeginSeq;
for (const auto& item : jsonData)
{
jsonToYaml(item, emitter);
}
emitter << YAML::EndSeq;
}
else
{
// Scalar value
emitter << jsonData.get<nlohmann::json::string_t>();
}
}
通过这些修改,代码应该能够正确编译并将 JSON 转换为 YAML 格式。希望这次能够帮到你!如果还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问