nlohmann::json::parse принимает строку и строит дерево nlohmann::json.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpSrRd 590 of 696 menu
◀ ▶

Чтение из строки в C++

Текст JSON описывает только данные, без функций C++.

Статический метод nlohmann::json::parse принимает строку и строит дерево nlohmann::json. Отдельное поле достают через at или оператор [] с именем ключа:

#include <iostream> #include <nlohmann/json.hpp> #include <string> int main() { std::string raw = R"({"code":"W-3","capacity":40})"; nlohmann::json unit = nlohmann::json::parse(raw); std::cout << unit.at("code").get<std::string>() << "\n"; std::cout << unit["capacity"].get<int>() << "\n"; return 0; }

Метод get с типом в угловых скобках превращает элемент JSON в значение C++. Если ключ отсутствует, at сообщит об ошибке, а оператор [] создаст пустой узел - для чтения надежнее at.

Круг «запись - чтение» удобно проверить на одном объекте: сначала получают строку, затем снова разбирают ее:

#include <iostream> #include <nlohmann/json.hpp> int main() { nlohmann::json original; original["code"] = "W-9"; original["capacity"] = 12; std::string raw = original.dump(); nlohmann::json restored = nlohmann::json::parse(raw); std::cout << (original == restored) << "\n"; return 0; }

Разберите строку {"label":"pro","level":2} в nlohmann::json и выведите оба поля на отдельных строках.

Соберите JSON с ключами tag и score, значениями "trial" и 0. Запишите его в текст, снова разберите и выведите 1, если исходный и восстановленный объект равны, иначе 0.

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