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;
}
Другие вопросы по тегам