Вложенный объект в 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.