我使用 boost 库,需要在 C++ 上解析一些 json 文件。
对于前。 json(部分):
{
"media": {
"Test1": "https://storage.tst",
"Test2": "https://storage.tst"
}
}
我想要在循环中(可能我会有很多字符串,例如 test (test2, test4...))
用两个级别填充一些动态数组 - 名称(测试)和地址字段(键值)。我想获取“媒体”的每个字段并将该字段放入这个两级动态数组中。
我想用 C++11 或更旧的方法来实现。
Using boost::json
你可以解析:
json::value sample = json::parse(R"(
{
"media": {
"Test1": "https://storage.tst",
"Test2": "https://storage.tst"
}
})");
现在您可以迭代属性,例如:
for (auto& [k, v] : sample.at("media").as_object()) {
std::cout << k << " -> " << v << "\n";
}
要将其放入“二级数组”(不存在)中,我希望您的意思是:Live
std::map<std::string, std::string> not_an_array;
for (auto& [k, v] : sample.at("media").as_object()) {
not_an_array.emplace(k, v.as_string());
}
fmt::print("not_an_array: {}\n", not_an_array);
Prints
not_an_array: {"Test1": "https://storage.tst", "Test2": "https://storage.tst"}
使用的文档:value, at, object and as_string
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)