JSON
nlohmann::json: формат, на котором говорит интернет
После урока ты сможешь
- Разбирать JSON в свои структуры
- Сериализовать структуры обратно в JSON
- Обрабатывать некорректный JSON без падения
Шаг 1 из 7
Формат, на котором говорит интернет
Когда Telegram сообщает боту о новом сообщении, он присылает такой текст:
{
"update_id": 815,
"message": {
"message_id": 42,
"from": {"id": 1001, "first_name": "Аня", "username": "anya"},
"chat": {"id": 1001, "type": "private"},
"text": "/add купить молоко"
}
}
Это JSON — самый распространённый формат обмена данными. На нём отвечают почти все API в интернете, в нём хранят настройки программ. Устроен он просто, в нём всего шесть видов значений:
| Вид | Пример | В C++ |
|---|---|---|
| объект | {"name": "Аня", "age": 17} | структура или std::map |
| массив | [1, 2, 3] | std::vector |
| строка | "текст" | std::string |
| число | 42, -3.5 | int, double |
| логическое | true, false | bool |
| пусто | null | std::optional без значения |
Ключи объекта — всегда строки в двойных кавычках. Значения могут вкладываться друг в друга сколько угодно.
В стандартной библиотеке C++ JSON нет, поэтому все пользуются библиотекой nlohmann/json. Её мы подключали в уроке про библиотеки, и на платформе она уже установлена.