nlohmann::json внутренний объект - отдельное значение того же типа.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpSrNs 592 of 696 menu
◀ ▶

Вложенный объект в C++

Формат JSON вкладывает объекты друг в друга через вложенные фигурные скобки.

В nlohmann::json внутренний объект - отдельное значение того же типа. Его сначала собирают в переменной, затем присваивают полю внешнего объекта:

#include <iostream> #include <nlohmann/json.hpp> #include <string> int main() { nlohmann::json ship_to; ship_to["city"] = "Oslo"; ship_to["postal"] = "0150"; nlohmann::json order; order["id"] = 501; order["ship_to"] = ship_to; std::cout << order.dump() << "\n"; return 0; }

Ключ ship_to указывает на объект с полями city и postal. При разборе текста вложенный блок достают тем же at или [], затем читают поля внутри.

#include <iostream> #include <nlohmann/json.hpp> #include <string> int main() { std::string raw = R"({"title":"demo","slot":{"hours":0,"minutes":45}})"; nlohmann::json plan = nlohmann::json::parse(raw); nlohmann::json slot = plan.at("slot"); int minutes = slot.at("minutes").get<int>(); std::cout << plan.at("title").get<std::string>() << "\n"; std::cout << minutes << "\n"; return 0; }

Соберите вложенный JSON slot с hours 1 и minutes 30, поместите его в объект plan с title "sync". Выведите строку dump.

Из текста {"title":"demo","slot":{"hours":0,"minutes":45}} выведите название и суммарные минуты слота как одно число 45.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить