C++ nlohmann JSON получить имя массива
У меня есть объект nlohmann json:
json uuid = R"(
{
"uuid": ["aaa","bbb","ccc"]
}
)"_json;
Я могу получить значения в массиве без проблем: str = uuid["uuid"][0];
Но как я могу получить имя массива сам?
1 ответ
Вы можете получить базовую карту от объекта json, который дает вам имена массивов и массивов. Если вы просто хотите перебирать элементы, это тоже легко.
#include <iostream>
#include <json.hpp>
using json = nlohmann::json;
int main()
{
json uuid = R"(
{
"uuid": ["aaa","bbb","ccc"],
"uuie": ["aaa","bbb","ccc"],
"uuif": ["aaa","bbb","ccc"]
}
)"_json;
if (uuid.is_object())
{
auto obj = uuid.get<json::object_t>();
for (auto& kvp : obj)
{
std::cout << kvp.first << ":" << kvp.second << "\n";
}
}
for (auto& item : uuid)
{
std::cout << item << "\n";
}
return 0;
}